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
?
答案 0 :(得分:4)
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
)绑定到新成员属性a.var
。