Java的公共和私有是否有C和Python的等价物?

2024-10-03 13:24:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我意识到,在我所学的许多语言中,包括关键字publicprivate,我还发现Lua对private的等价物是local,这让我想到了在C和Python中是否也存在等价物

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


Tags: 语言local关键字javaprivatepubliclua意识
2条回答

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

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

没有加上一个或两个下划线前缀的所有内容都是公共的

在C语言中,全局变量和函数可以从其他源文件中的函数访问,除非它们声明为static。与private不完全相同,但C不是面向对象的,因此这里不存在类的概念

相关问题 更多 >