2
我想動態創建一個類使用type()
並指定一個__init__
構造函數調用super().__init__(...)
;然而,當super()
被調用我收到以下錯誤:動態類繼承使用超
TypeError: super(type, obj): obj must be an instance or subtype of type
這裏是我的代碼:
class Item():
def __init__(self, name, description, cost, **kwargs):
self.name = name
self.description = description
self.cost = cost
self.kwargs = kwargs
class ItemBase(Item):
def __init__(self, name, description, cost):
super().__init__(name, description, cost)
def __constructor__(self, n, d, c):
super().__init__(name=n, description=d, cost=c)
item = type('Item1', (ItemBase,), {'__init__':__constructor__})
item_instance = item('MyName', 'MyDescription', 'MyCost')
爲什麼super()
內__constructor__
方法不理解對象參數;我該如何解決它?