在 Python 中的同一个 class 中创建 class 对象

Creating class object inside same class in Python

我正在尝试在 class 本身内部创建一个 class 对象,如下所示:

 class Motor:
 
 #other code here

     def function(self):
            x = Motor()

这可以正常运行,但是如果我使用继承来创建另一个 class 作为这个 class 的子代(例如 Car(Motor)),Car.function() 将不起作用正确,因为它创建的是 Motor 类型的对象,而不是 Car。我还有其他方法可以做到这一点吗?

谢谢!!

您需要接收 class 实例化作为方法的参数,而不是硬编码 class 名称。

class Motor:
    @classmethod
    def function(cls):
        x = cls()
        ...

如果这确实需要实例方法,您可以使用type(self)代替。

class Motor:
    def function(self):
        x = type(self)()