是否有C和Python等效于Java的public和private?

问题描述

我意识到我所学的许多语言都包含关键字publicprivate,而且我还发现Lua等效于private的是local考虑是否在C和Python中也有等效功能。

那么在C和Python中是否有Java的publicprivate的等效项?

解决方法

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语言中没有这样的东西,因为它不是面向对象的。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...