【问题标题】:Creating class object inside same class in Python在 Python 中的同一类中创建类对象
【发布时间】:2022-01-16 08:56:27
【问题描述】:

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

 class Motor:
 
 #other code here

     def function(self):
            x = Motor()

这可以正常工作和运行,但是如果我使用继承来创建另一个类作为该类的子类(例如 Car(Motor)),则 Car.function() 无法正常工作,因为它正在创建一个类型的对象马达,不是汽车。有没有其他方法可以做到这一点?

谢谢!!

【问题讨论】:

  • 与手头的问题无关,但汽车不是一种马达,所以Car不应该继承自Motor
  • @chepner 取决于方言。英国某些地区的人们会将汽车称为“马达”,大概是“汽车”的缩写。
  • 即使在这种情况下,“汽车”和“马达”不是同义词,而不是一种另一种?

标签: python class inheritance


【解决方案1】:

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

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

如果这确实需要作为实例方法,您可以改用type(self)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-15
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多