是否有 C 和 Python 相当于 Java 的 public 和私有的?

Is there a C and Python equivalent of Java's public and private?

我发现在我学过的很多语言中都包含关键字publicprivate,我还发现Lua等同于privatelocal 这让我想到 C 和 Python.

中是否也有等价物

那么在 C 和 Python 中是否存在 Java 的 publicprivate 的实际等价物?

在 python 中,您可以通过在成员名称前加上双下划线(双下划线)来声明私有成员,如下所示:

class Sample:
    def __init__(self):
        self.__private_mem = "Can be accessed only by member functions"
        self.public_mem = "Can be accessed as object properties outside the class"

sample = Sample()
print(sample.public_mem)
print(sample.__private_mem) # will raise an Error

但是,我猜 C 语言中没有这样的东西,因为它不是面向对象的。

Python 中保护字段和私有字段有一个命名约定: 一个下划线前缀表示受保护,两个下划线表示私有。但这并没有真正强制执行。更多细节在这里: https://www.tutorialsteacher.com/python/private-and-protected-access-modifiers-in-python

所有不以一两个下划线为前缀的都是 public。

在 C 中,可以从其他源文件中的函数访问全局变量和函数,除非它们被声明 static。和private不完全一样,但是C不是object-oriented所以这里不存在class的概念。