@property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的,我们视具体情况吧
#下面是使用了@property
所以v就可以当做属性来使用
>>> class A:
... def __init__(self):
... self.name = 'quan'
... @property
... def v(self):
... return self.name
...
>>>
>>> d = A()
>>> d.v
'quan'
>>> d.v()
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
TypeError: 'str' object is not callable
>>> class A:
... def __init__(self):
... self.name = 'quan'
...
... def v(self):
... return self.name
...
>>> d = A()
>>> d.v
<bound method A.v of <__main__.A instance at 0x0918E378>>
>>> d.v()
'quan'