我正在尝试让Python的装饰器为我工作。我无法理解为什么这不起作用:
class toy(object):
@property
def toyname(self):
return 'lol'
a = toy
print(a.toyname)
当我运行它时,我得到以下输出:
<property object at 0x03362FC0>
该财产似乎没有被评估。
我已经看到Python 2.x的几个答案提到我需要继承object
以使属性起作用;但是,到目前为止我遇到的答案并没有解决我的问题。
答案 0 :(得分:1)
toy
是您班级的蓝图。 toy()
是您可以使用的类的新副本,或者是新实例。你需要&#34;实例化&#34;它,这意味着您需要创建要分配给的类的新实例。换句话说,您需要a = toy()
而不是a = toy
试试这个:
class toy(object):
@property
def toyname(self):
return 'lol'
a = toy()
print(a.toyname)