我看到在下划线的帮助下,可以在类中声明私有成员,但只要有一个分数,它仍然可以在 main 中访问,但如果有两个分数则不能。如果 2 使变量私有,那么为什么只有 1 呢?单下划线变量的用途/目的是什么?
class Temp:
def __init__(self):
self.a = 123
self._b = 123
self.__c = 123
obj = Temp()
print(obj.a)
print(obj._b)
print(obj.__c)
Run Code Online (Sandbox Code Playgroud)
这就是为什么它是“标准”,与其他语言有点不同。
_Temp__c两个下划线的名称被修改为在幕后包含类名,以防止变量与子类发生冲突。然而,我不会默认为两个,因为这不是一个好习惯,而且通常是不必要的。有关于它的争论和其他帖子,您可以像这样阅读注意:带下划线或不带下划线的变量/方法没有区别。这只是一个类的约定,不是强制执行的,而是被社区接受为私有的。
注意#2:Matthias 描述了一个非类方法的例外情况