我正在尝试让 Python 的装饰器为我工作。我无法理解为什么这不起作用:
class toy(object):
@property
def toyname(self):
return 'lol'
a = toy
print(a.toyname)
当我运行它时,我得到以下输出:
<property object at 0x03362FC0>
该属性(property)似乎未被评估。
我已经看到几个关于 Python 2.x 的答案提到我需要子类化 object
才能使属性起作用;但是,到目前为止我遇到的答案并没有解决我的问题。
最佳答案
导致问题的是 a = toy
行。 a = toy
的意思是“将变量 a
指向类 toy
的定义”。你真正想做的是a = toy()
,实例化一个toy
类型的对象并保存在a
中。
关于Python 类属性装饰器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513045/