如何使 super class 引用自身

how make super class refer to itself

我想让一个 mixin class 在初始化期间引用它自己的 class。

如果我让它引用 self.__class__,那么它引用它所混入的实例的 class,而不是它自己的 class。如果指的是mx.__class__ 如果指的是class 'type'。

class mx:
    def __init__(self):
        print( self.__class__ )
        print( mx.__class__ )

class C( mx ):
    def __init__(self):
        super().__init__()

>>> o = C()
<class '__main__.C'>
<class 'type'>

另一方面,如果我将它创建为它自己的一个实例,它会得到我在引用自身时寻找的 class 引用。

>>> m = mx()
<class '__main__.mx'>
<class 'type'>

如何让 mx 从自身引用 <class '... .mx'>

I want to make a mixin class refer to its own class during its init.

问题令人困惑,因为您询问的是如何动态访问当前 class,但实际上期望的是静态结果。我建议改用 mx