>>> type(type)
<type 'type'>
Я ожидаю, что тип type
будет функцией, так как он используется для возврата типа аргумента. Означает ли это, что тип может принимать аргументы? Есть type
Что-то необычное/специальное?Что такое 'type' в Python?
>>> type(type)
<type 'type'>
Я ожидаю, что тип type
будет функцией, так как он используется для возврата типа аргумента. Означает ли это, что тип может принимать аргументы? Есть type
Что-то необычное/специальное?Что такое 'type' в Python?
type
является классом ур-типа Python. Когда вызывается с единственным аргументом, он возвращает тип аргумента. Когда вызывается с 3 аргументами, он возвращает класс, характеристики которого определяются аргументами.
Как можно ясно увидеть в documentations -
типа класса (объекта)
типа класса (имя, баз, ДИКТ)С одним аргументом, возвращает тип объекта. Возвращаемое значение представляет собой объект типа. Встроенная функция isinstance() рекомендуется для тестирования типа объекта.
type
- это класс, а не функция.
Классы - объекты. Все объекты являются экземплярами класса. Так как класс является объектом, он является экземпляром некоторого класса. Класс, который является экземпляром класса, называется type
. Это база metaclass.
Первоначально type()
был просто функцией, которая возвращала класс объекта. В Python 2.2 пользовательские классы и встроенные типы были unified, а type
стал классом. Для обратной совместимости он по-прежнему ведет себя как старая функция type()
при вызове с одним аргументом.
type
metaclass: класс, экземпляры которого также являются классами. Тип любого другого встроено класса также будет type
- например:
>>> type(object)
<class 'type'>
>>> type(list)
<class 'type'>
Действительно, каждый (новый стиль) класс также будет экземпляром type
, хотя, если она определена с помощью пользовательского метакласса, type(my_class)
будет быть метаклассом. Но так как каждый метаклассом требуется, чтобы наследовать от type
, вы будете иметь для любого класса:
>>> isinstance(my_class, type)
True
Что такое «Ур-типа»? – user2864740
@ user2864740: Это тип всех других типов. –