简单 python 单例继承 class 失败,没有堆栈跟踪

Simple python inheritance with singleton class failing with no stack trace

class B:
    @property
    def x(self):
        print('x getter')
        return self.x

    @x.setter
    def x(self, x) -> None:
        print('x setter')
        self.x = x + 1

class A(B):
    __instance = None
    def __new__(self):
        ''' Virtually private constructor '''
        if not A.__instance:
            A.__instance = object.__new__(self)
            A.__instance.__setup()

        return A.__instance
    
    def __setup(self):
        self.x = 10
    
    def minus(self):
        self.x -= 3

a1 = A()

Class A 是单例 class.

我不确定是什么导致程序失败,因为没有堆栈跟踪,它只是失败了。

您没有正确使用 @property 和 setter。您需要为实际的基础 属性:

取一个不同的名称
class B:
    @property
    def x(self):
        print('x getter')
        return self._x

    @x.setter
    def x(self, x) -> None:
        print('x setter')
        self._x = x + 1