types.md
1> **Источник:** https://python-all.ru/2.7/library/types.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 8.15. [`types`](https://python-all.ru/2.7/library/types.html#module-types) – Имена для встроенных типов89**Исходный код:** [Lib/types.py](https://python-all.ru/src/2.7/Lib/types.py)1011---1213В этом модуле определены имена для некоторых типов объектов, используемых стандартным интерпретатором Python, но не для типов, определяемых различными модулями расширения. Кроме того, он не включает некоторые типы, возникающие во время обработки, такие как тип `listiterator`. Использовать `from types import *` безопасно – модуль не экспортирует никаких имен, кроме перечисленных здесь. Новые имена, которые будут экспортированы в будущих версиях этого модуля, будут оканчиваться на `Type`.1415Обычно используется для функций, которые выполняют разные действия в зависимости от типов аргументов, например:1617```python18from types import *19def delete(mylist, item):20 if type(item) is IntType:21 del mylist[item]22 else:23 mylist.remove(item)24```2526Начиная с Python 2.2, встроенные функции-фабрики, такие как [`int()`](https://python-all.ru/2.7/library/functions.html#int) и [`str()`](https://python-all.ru/2.7/library/functions.html#str), также являются именами соответствующих типов. Теперь это предпочтительный способ доступа к типу вместо использования модуля [`types`](https://python-all.ru/2.7/library/types.html#module-types). Соответственно, приведённый выше пример следует записывать следующим образом:2728```python29def delete(mylist, item):30 if isinstance(item, int):31 del mylist[item]32 else:33 mylist.remove(item)34```3536Модуль определяет следующие имена:3738#### `types.NoneType`3940Тип `None`.4142#### `types.TypeType`4344Тип объектов-типов (например, возвращаемых [`type()`](https://python-all.ru/2.7/library/functions.html#type)); псевдоним встроенного [`type`](https://python-all.ru/2.7/library/functions.html#type).4546#### `types.BooleanType`4748Тип значений [`bool`](https://python-all.ru/2.7/library/functions.html#bool) `True` и `False`; псевдоним встроенного [`bool`](https://python-all.ru/2.7/library/functions.html#bool).4950Новое в версии 2.3.5152#### `types.IntType`5354Тип целых чисел (например, `1`); псевдоним встроенного [`int`](https://python-all.ru/2.7/library/functions.html#int).5556#### `types.LongType`5758Тип длинных целых чисел (например, `1L`); псевдоним встроенного [`long`](https://python-all.ru/2.7/library/functions.html#long).5960#### `types.FloatType`6162Тип чисел с плавающей запятой (например, `1.0`); псевдоним встроенного [`float`](https://python-all.ru/2.7/library/functions.html#float).6364#### `types.ComplexType`6566Тип комплексных чисел (например, `1.0j`). Не определен, если Python был собран без поддержки комплексных чисел.6768#### `types.StringType`6970Тип строк (например, `'Spam'`); псевдоним встроенного [`str`](https://python-all.ru/2.7/library/functions.html#str).7172#### `types.UnicodeType`7374Тип строк Unicode (например, `u'Spam'`). Не определен, если Python был собран без поддержки Unicode. Это псевдоним встроенного [`unicode`](https://python-all.ru/2.7/library/functions.html#unicode).7576#### `types.TupleType`7778Тип кортежей (например, `(1, 2, 3, 'Spam')`); псевдоним встроенного [`tuple`](https://python-all.ru/2.7/library/functions.html#tuple).7980#### `types.ListType`8182Тип списков (например, `[0, 1, 2, 3]`); псевдоним встроенного `list`.8384#### `types.DictType`8586Тип словарей (например, `{'Bacon': 1, 'Ham': 0}`); псевдоним встроенного [`dict`](https://python-all.ru/2.7/library/stdtypes.html#dict).8788#### `types.DictionaryType`8990Альтернативное имя для `DictType`.9192#### `types.FunctionType`9394#### `types.LambdaType`9596Тип пользовательских функций и функций, созданных выражениями [`lambda`](https://python-all.ru/2.7/reference/expressions.html#lambda).9798#### `types.GeneratorType`99100Тип объектов-итераторов [generator](https://python-all.ru/2.7/glossary.html#term-generator), создаваемых вызовом генераторной функции.101102Новое в версии 2.2.103104#### `types.CodeType`105106Тип объектов кода, возвращаемых [`compile()`](https://python-all.ru/2.7/library/functions.html#compile).107108#### `types.ClassType`109110Тип пользовательских классов старого стиля.111112#### `types.InstanceType`113114Тип экземпляров пользовательских классов старого стиля.115116#### `types.MethodType`117118Тип методов экземпляров пользовательских классов.119120#### `types.UnboundMethodType`121122Альтернативное имя для `MethodType`.123124#### `types.BuiltinFunctionType`125126#### `types.BuiltinMethodType`127128Тип встроенных функций, таких как [`len()`](https://python-all.ru/2.7/library/functions.html#len) или [`sys.exit()`](https://python-all.ru/2.7/library/sys.html#sys.exit), и методов встроенных классов. (Здесь термин «встроенный» означает «написанный на C».)129130#### `types.ModuleType`131132Тип модулей.133134#### `types.FileType`135136Тип открытых файловых объектов, таких как `sys.stdout`; псевдоним встроенного [`file`](https://python-all.ru/2.7/library/functions.html#file).137138#### `types.XRangeType`139140Тип объектов range, возвращаемых [`xrange()`](https://python-all.ru/2.7/library/functions.html#xrange); псевдоним встроенного [`xrange`](https://python-all.ru/2.7/library/functions.html#xrange).141142#### `types.SliceType`143144Тип объектов, возвращаемых [`slice()`](https://python-all.ru/2.7/library/functions.html#slice); псевдоним встроенного [`slice`](https://python-all.ru/2.7/library/functions.html#slice).145146#### `types.EllipsisType`147148Тип `Ellipsis`.149150#### `types.TracebackType`151152Тип объектов traceback, таких как в `sys.exc_traceback`.153154#### `types.FrameType`155156Тип объектов фреймов, которые можно найти в `tb.tb_frame`, если `tb` является объектом traceback.157158#### `types.BufferType`159160Тип буферных объектов, создаваемых функцией [`buffer()`](https://python-all.ru/2.7/library/functions.html#buffer).161162#### `types.DictProxyType`163164Тип прокси-словарей, таких как `TypeType.__dict__`.165166#### `types.NotImplementedType`167168Тип `NotImplemented`169170#### `types.GetSetDescriptorType`171172Тип объектов, определенных в модулях расширения с помощью `PyGetSetDef`, таких как `FrameType.f_locals` или `array.array.typecode`. Этот тип используется в качестве дескриптора атрибутов объектов; он имеет то же назначение, что и тип [`property`](https://python-all.ru/2.7/library/functions.html#property), но для классов, определенных в модулях расширения.173174Новое в версии 2.5.175176#### `types.MemberDescriptorType`177178Тип объектов, определённых в модулях расширения с помощью `PyMemberDef`, таких как `datetime.timedelta.days`. Этот тип используется как дескриптор для простых элементов данных C, которые используют стандартные функции преобразования; он имеет то же назначение, что и тип [`property`](https://python-all.ru/2.7/library/functions.html#property), но для классов, определённых в модулях расширения.179180**Особенность реализации CPython:** В других реализациях Python этот тип может быть идентичен `GetSetDescriptorType`.181182Новое в версии 2.5.183184#### `types.StringTypes`185186Последовательность, содержащая `StringType` и `UnicodeType`, используемая для упрощения проверки любого строкового объекта. Использование этого более переносимо, чем использование последовательности двух строковых типов, созданной в другом месте, поскольку она содержит `UnicodeType` только в том случае, если он был встроен в работающую версию Python. Например: `isinstance(s, types.StringTypes)`.187188Новое в версии 2.2.189