Python @property装饰器不起作用

发布于 2021-01-29 17:25:27

谁能找到与此@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()
关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    @property装饰仅适用于 新的样式类 。继承自object

    class A(object):
    

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看