Python类属性修饰符不工作

2024-03-29 01:30:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让Python的装饰师为我工作。我很难理解为什么这样不行:

class toy(object):

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

a = toy
print(a.toyname)

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

<property object at 0x03362FC0>

看来,这处房产没有被评估。你知道吗

我已经看到了一些关于python2.x的答案,其中提到我需要对object进行子类化才能使属性工作;然而,我到目前为止遇到的答案并不能解决我的问题。你知道吗


Tags: 答案selfreturn属性objectdefpropertyat
2条回答

引起问题的是a = toy行。a = toy的意思是“将变量a指向类toy的定义”。实际上您要做的是a = toy(),实例化一个类型为toy的对象并将其保存在a。你知道吗

toy是类的蓝图。toy()是可以使用的类的新副本或新实例。您需要“实例化”它,这意味着您需要创建一个类的新实例来分配给a。换句话说,您需要a = toy()而不是a = toy

试试这个:

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

a = toy()
print(a.toyname)

相关问题 更多 >