繁体   English   中英

Python @property装饰器不起作用

[英]Python @property decorator not working

有人可以发现此@property装饰器有问题吗? 我似乎无法正确断言。 我敢肯定我在做一些非常简单的事情,但是任何人都可以将疲倦的眼睛指向正确的方向吗?

class A:
    def __init__(self):
        self.a = 0
        self._b = 0

    @property
    def b(self):
        return self.b

    @b.getter
    def b(self):
        if self._b is None:
            return 0
        return self._b

    @b.setter
    def b(self, val):
        self._b = (val * 20)


def test_getter_setter():
    obj = A()
    obj.a = 1
    #obj.b = 2
    print obj.a, obj.b
    obj.b = 2
    print obj.a, obj.b
    assert obj.b == 40

test_getter_setter()

@property装饰器仅适用于新样式类 object继承:

class A(object):

有了这一更改,您的测试功能就会通过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM