如何解决是否有C和Python等效于Java的public和private?
我意识到我所学的许多语言都包含关键字public
和private
,而且我还发现Lua等效于private
的是local
考虑是否在C和Python中也有等效功能。
那么在C和Python中是否有Java的public
和private
的等效项?
解决方法
Python中有一个受保护和私有字段的命名约定: 前缀一个下划线表示受保护,两个下划线表示私有。但这并没有真正执行。此处有更多详细信息: https://www.nuget.org/packages/Refractored.FloatingActionButton/
所有不带一两个下划线的前缀都是公开的。
在C中,可以从其他源文件中的函数访问全局变量和函数,除非将它们声明为static
。与private
并不完全相同,但是C不是面向对象的,因此这里没有类的概念。
在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语言中没有这样的东西,因为它不是面向对象的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。