class A():
def __init__(self):
self.__var = 5
def get_var(self):
return self.__var
def set_var(self, value):
self.__var = value
var = property(get_var, set_var)
a = A()
a.var = 10
print a.var == a._A__var
谁能解释为什么结果是False
?
最佳答案
property
装饰器只适用于新型类。在 Python 2.x 中,您必须扩展 object
类:
class A(object):
def __init__(self):
self.__var = 5
def get_var(self):
return self.__var
def set_var(self, value):
self.__var = value
var = property(get_var, set_var)
没有新式类的行为,赋值 a.var = 10
只是将一个新值 (10
) 绑定(bind)到一个新的成员属性 a.var
.
关于python私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903217/