🖥 Что такое type. Как работает поиск метакласса при создании объекта?



type это метакласс, который Питон внутренне использует для создания всех классов.



Когда вы пишете:



class Foo(Bar):

pass


Питон делает следующее:



- Есть ли у класса Foo атрибут __metaclass__?

- Если да, создаёт в памяти объект-класс с именем Foo, используя то, что указано в __metaclass__.

- Если Питон не находит metaclass, он ищет __metaclass__ в родительском классе Bar и попробует сделать то же самое.

- Если же __metaclass__ не находится ни в одном из родителей, Питон будет искать __metaclass__ на уровне модуля.

- И если он не может найти вообще ни одного __metaclass__, он использует type для создания объекта-класса.



@python_job_interview