我正在嘗試在類本身內部創建一個類物件,如下所示:
class Motor:
#other code here
def function(self):
x = Motor()
這可以正常作業并運行,但是如果我使用繼承創建另一個類作為這個類的子類(例如 Car(Motor)),則 Car.function() 無法正常作業,因為它創建的是 Motor 型別的物件,而不是車。有沒有其他方法可以做到這一點?
謝謝!!
uj5u.com熱心網友回復:
您將希望接收要實體化的類作為方法的引數,而不是對類名進行硬編碼。
class Motor:
@classmethod
def function(cls):
x = cls()
...
如果這確實需要成為實體方法,則可以type(self)改用。
class Motor:
def function(self):
x = type(self)()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/381347.html
上一篇:子類是新型別嗎?
