Почему __init_subclass__ ведут себя неожиданно при использовании MetaClasses с динамическим поколением класса?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему __init_subclass__ ведут себя неожиданно при использовании MetaClasses с динамическим поколением класса?

Сообщение Anonymous »

Я пытаюсь динамически генерировать классы в Python, используя пользовательский Metaclass и зацепите процесс создания класса, используя __init_subclass __ . Однако, когда я динамически генерирую подклассы, кажется, что __init_subclass __ не называется так, как я ожидаю или иногда вообще нет.
Пример:

Код: Выделить всё

class Base:
def __init_subclass__(cls, **kwargs):
print(f"Initialized subclass: {cls.__name__}")
super().__init_subclass__(**kwargs)

class Meta(type):
def __new__(cls, name, bases, dct):
new_cls = super().__new__(cls, name, bases, dct)
return new_cls

for i in range(3):
class_name = f"DynamicClass{i}"
globals()[class_name] = Meta(class_name, (Base,), {})
Я ожидал, что метод __init_subclass __ в базе будет инициирован для каждого динамически созданного подкласса, но я не вижу вывода печати.
Мой вопрос:

Почему __init_subclass __ не gate not gate stice not stice stice> not ke gate> not gate gta> not gat hate stice> not gate stice> not kee stice stice> not kee stice stice> not kee stice stice stice not kee not kee not kee not?/code not? /> Есть ли правильный способ вызвать его или убедиться, что он работает, когда классы генерируются динамически с помощью Metaclass? < /li>
< /ul>

Подробнее здесь: https://stackoverflow.com/questions/797 ... with-dynam
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»