在 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)()
我正在尝试在 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)()