Mar*_*ine 3 python python-decorators
我正在尝试使用如下的属性设置器.我在这里关注这个例子: @property装饰器是如何工作的?
class Contact:
def __init__(self):
self._funds = 0.00
@property
def funds(self):
return self._funds
@funds.setter
def funds(self, value):
self._funds = value
Run Code Online (Sandbox Code Playgroud)
吸气剂工作正常
>>> contact = Contact()
>>> contact.funds
0.0
Run Code Online (Sandbox Code Playgroud)
但是我错过了关于二传手的事情:
>>> contact.funds(1000.21)
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/doctest.py", line 1315, in __run
compileflags, 1) in test.globs
File "<doctest __main__.Contact[2]>", line 1, in <module>
contact.funds(1000.21)
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
只需使用contact.funds = 1000.21语法.它将使用它来设置它@funds.setter.
我无法重现您的'str' object is not callable错误,而是我收到'float' object is not callable错误.关于它如何运行的更多细节将有助于诊断它.无论如何,原因是contact.funds它将返回值contact._funds,而不是可调用对象,因此错误.
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |