Я хотел бы попросить следующий фрагмент кода:
class Meta(type):
def __call__(self, *args):
obj = super().__call__(*args)
print('Meta specific __call__ actions')
return obj
class Spam(metaclass=Meta):
def __init__(self, *args):
print('Spam.__init__(%r)' % args)
Как super () .__ call__ (super () означает здесь «type») знает, что должен
создать экземпляр класса Spam? __call__ не получает аргументов, которые
помог бы.
Спам является экземпляром Meta, поэтому Spam () должен вызывать
Meta .__ call__. Мои рассуждения на этом заканчиваются. Спам ('foo') должен создать
экземпляр спама. Пожалуйста, объясните, как в методе Meta .__ call__ это
информация получена.