Я пытаюсь динамически создать класс с использованием 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__
не понимая параметр объекта; и как я могу это исправить?