English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция type() возвращает тип объекта, переданного в нее, или создает новый тип объекта.
Функция type() имеет два разных формата:
type(object) type(name, bases, dict)
Если передать объект в функцию type(), она вернет его тип.
numbers_list = [1, 2] print(type(numbers_list)) numbers_dict = {1: 'one', 2: 'two'} print(type(numbers_dict)) class Foo: a = 0 foo = Foo() print(type(foo))
Результат вывода
<class 'dict'> <class 'Foo'> <class '__main__.Foo'>
Если нужно проверить тип объекта, лучше использоватьФункция isinstance() в Python. Это потому, что функция isinstance() также проверяет, является ли предоставленный объект экземпляром subclasses.
Если передать три параметра в type(), то он вернет новыйtypeобъект.
Эти три параметра:
Параметры | Описание |
---|---|
name | Имя класса; становится свойством __name__ |
bases | Перечисление суперклассов в кортеже; становится свойством __bases__ |
dict | Словарь, который содержит命名ное пространство определения класса; становится свойством __dict__ |
o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2))
Результат вывода
<class 'type'> {'b': 12, 'a': 'Foo', '__dict__': <attribute '__dict__' of 'X' objects>, '__doc__': None, '__weakref__': <attribute '__weakref__' of 'X' objects>} <class 'type'> {'b': 12, 'a': 'Foo', '__doc__': None}
В программе мы используемФункция vars() PythonЧтобы вернуться к свойству __dict__. __dict__ используется для хранения的可写的 свойств объекта.
Вы можете легко изменить эти свойства по своему усмотрению. Например, если вы хотите изменить значение свойства __name__ o1 на 'Z', используйте:
o1.__name = 'Z'