Python类属性装饰器无法正常工作

时间:2016-04-09 05:16:57

标签: python python-3.x properties

我正在尝试让Python的装饰器为我工作。我无法理解为什么这不起作用:

class toy(object):

    @property
    def toyname(self):
        return 'lol'

a = toy
print(a.toyname)

当我运行它时,我得到以下输出:

<property object at 0x03362FC0>

该财产似乎没有被评估。

我已经看到Python 2.x的几个答案提到我需要继承object以使属性起作用;但是,到目前为止我遇到的答案并没有解决我的问题。

1 个答案:

答案 0 :(得分:1)

toy是您班级的蓝图。 toy()是您可以使用的类的新副本,或者是新实例。你需要&#34;实例化&#34;它,这意味着您需要创建要分配给的类的新实例。换句话说,您需要a = toy()而不是a = toy

试试这个:

class toy(object):
    @property
    def toyname(self):
        return 'lol'

a = toy()
print(a.toyname)
相关问题