property() 控制的方法,值到底是赋值语句的值还是 fget或者fset的返回值?
测试property(),
如下为什么 print(n.y)结果还是10?
setname 和 getname的return 有什么区别?
n.y的结果,到底是 10? 类外面执行的赋值语句?
还是500? setname 返回的值, 还是50? getname返回的值?
class A:
def __init__(self):
self.__x = 100
self.y = property(fget=self.getname,fset=self.setname)
def setname(self,value):
self.__z = value
print('set attribute')
return 600
def getname(self):
print('get attribute')
return 50
def test(self):
print(self.x)
x = property(getname,setname)
n = A()
#n.y = 10
n.x = 10
print(n.x)
n.test()
print ('###')
n.y = 10
print(n.y)
n.test()
推荐文章: