Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的私有-公共保护访问说明符_Python_Private_Public_Access Specifier_Name Mangling - Fatal编程技术网

python中的私有-公共保护访问说明符

python中的私有-公共保护访问说明符,python,private,public,access-specifier,name-mangling,Python,Private,Public,Access Specifier,Name Mangling,我们可以在python中模拟私有和受保护的访问说明符吗 名称损坏 例如: 可以模拟私有,但可以通过对象在外部轻松访问 object._className__var 那么,有没有一种方法可以直接模拟python,或者说python是一种我不知道的解决方案?python不像您可能使用的其他一些语言那样具有强制访问控制。这种语言的哲学是“我们都是同意的成年人” 按照惯例,私有属性的前缀是下划线,这是一种提示,提示人们不应该直接使用它们。但就是这样,传统。如果要对Python进行沙箱处理,则需要在单独

我们可以在python中模拟私有和受保护的访问说明符吗

名称损坏

例如:

可以模拟私有,但可以通过对象在外部轻松访问

object._className__var

那么,有没有一种方法可以直接模拟python,或者说python是一种我不知道的解决方案?

python不像您可能使用的其他一些语言那样具有强制访问控制。这种语言的哲学是“我们都是同意的成年人”

按照惯例,私有属性的前缀是下划线,这是一种提示,提示人们不应该直接使用它们。但就是这样,传统。如果要对Python进行沙箱处理,则需要在单独的过程中进行


双下划线篡改的目的是防止意外的名称冲突,而不是强制执行访问控制。

Thank you@sbumb。我知道名称篡改是用来强制访问控制的。顺便说一句,我的问题是如何模拟访问限制,这就是为什么贴子:p答案是你没有。你可以使用反射黑客来模拟它,但是你也可以使用反射来轻松绕过这些黑客。真正的问题是你想要实现什么?
object._className__var