Я пытаюсь вызвать конструктор объекта class
в python. Мне удалось получить его на работу, используя следующие несколько строк:Вызов конструктора объекта cls в Python
obj = cls.__new__(cls)
n = (List of attribute names)
v = (List of attribute values)
for s in n:
setattr(obj, s, v[s])
мне было интересно, если есть способ, чтобы непосредственно вставить значение атрибута + пар имени в конструктор, вызывают аргументы просто игнорируется, если я называю следующее:
obj = cls.__new__(cls, v)
пс: Я использую python3
класс выглядит примерно так:
class InheritingClass(BaseClass):
def __init__(self, basic_attribute, another_attribute=None):
super().__init__(basic_attribute=basic_attribute)
self.another_attribute= another_attribute
class BaseClass:
def __init__(self, basic_attribute=1):
self.basic_attribute= basic_attribute
Так что ничего особенного там
Что такое класс, который вы пытаетесь создать экземпляр? – Karin
'cls (s, v)' вызывает ваш конструктор. '__new__' создает экземпляр,' __init__' инициализирует его; оба вызываются 'Foo (s, v)'. Если вы выполняете 'cls = Foo',' cls (s, v) 'делает то же самое. – Amadan
@ Амадан спасибо, вот что я искал – Rittel