【发布时间】:2020-12-11 13:04:17
【问题描述】:
我了解 Python 不明确支持类中的私有变量。但是,请考虑以下程序:
class AClass(object):
def __init__(self, x):
self.__x = x
class BClass(object):
def __init__(self, x):
self.__x = x
# _____________________________________________________________________________
aClass = AClass(10)
bClass = BClass(10)
aClass.__x = 15
print (aClass.__x)
##bClass.__x = 20
print (bClass.__x)
上面的程序,会产生如下错误: AttributeError: 'BClass' 对象没有属性 '__x'
但是,如果倒数第二行代码没有注释,它会执行而不会出错。
如果有人可以澄清似乎不一致的地方,并且如果有 PEP 可以解释这种行为,我将不胜感激。
最好的问候。
BD
【问题讨论】: