Python setter如何

2024-04-20 09:31:24 发布

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

我刚开始使用Python,所以如果我遗漏了一些明显的东西,请原谅我。我已经读过关于装饰师和他们是如何工作的,我正试图理解这是如何翻译的:

class SomeObject(object):

    @property
    def test(self):
        return "some value"

    @test.setter   
    def test(self, value):
        print(value)

从我读到的,这应该变成:

^{pr2}$

但是当我尝试这个,我得到

AttributeError: 'function' object has no attribute 'setter'

有人能解释一下在这种情况下翻译是怎么工作的吗?在


Tags: testselfreturnobjectvaluedefpropertysome
1条回答
网友
1楼 · 发布于 2024-04-20 09:31:24

得到AttributeError的原因是def test在类的作用域中重新定义了test。类中的函数定义一点也不特殊。在

你的例子应该是这样的

class SomeObject(object):

    def get_test(self):
        return "some value"

    def set_test(self, value):
        print(value)

    test = property(get_test)
    test = test.setter(set_test)
    # OR
    test = property(get_test, set_test)

相关问题 更多 >