Документация Python неофициальный перевод

8.15. types – Имена для встроенных типовtypes – Names for built-in types

Исходный код: Lib/types.py


В этом модуле определены имена для некоторых типов объектов, используемых стандартным интерпретатором Python, но не для типов, определяемых различными модулями расширения. Кроме того, он не включает некоторые типы, возникающие во время обработки, такие как тип listiterator. Использовать from types import * безопасно – модуль не экспортирует никаких имен, кроме перечисленных здесь. Новые имена, которые будут экспортированы в будущих версиях этого модуля, будут оканчиваться на Type.

Обычно используется для функций, которые выполняют разные действия в зависимости от типов аргументов, например:

from types import *
def delete(mylist, item):
    if type(item) is IntType:
       del mylist[item]
    else:
       mylist.remove(item)

Начиная с Python 2.2, встроенные функции-фабрики, такие как int() и str(), также являются именами соответствующих типов. Теперь это предпочтительный способ доступа к типу вместо использования модуля types. Соответственно, приведённый выше пример следует записывать следующим образом:

def delete(mylist, item):
    if isinstance(item, int):
       del mylist[item]
    else:
       mylist.remove(item)

Модуль определяет следующие имена:

types.NoneType

Тип None.

types.TypeType

Тип объектов-типов (например, возвращаемых type()); псевдоним встроенного type.

types.BooleanType

Тип значений bool True и False; псевдоним встроенного bool.

Новое в версии 2.3.

types.IntType

Тип целых чисел (например, 1); псевдоним встроенного int.

types.LongType

Тип длинных целых чисел (например, 1L); псевдоним встроенного long.

types.FloatType

Тип чисел с плавающей запятой (например, 1.0); псевдоним встроенного float.

types.ComplexType

Тип комплексных чисел (например, 1.0j). Не определен, если Python был собран без поддержки комплексных чисел.

types.StringType

Тип строк (например, 'Spam'); псевдоним встроенного str.

types.UnicodeType

Тип строк Unicode (например, u'Spam'). Не определен, если Python был собран без поддержки Unicode. Это псевдоним встроенного unicode.

types.TupleType

Тип кортежей (например, (1, 2, 3, 'Spam')); псевдоним встроенного tuple.

types.ListType

Тип списков (например, [0, 1, 2, 3]); псевдоним встроенного list.

types.DictType

Тип словарей (например, {'Bacon': 1, 'Ham': 0}); псевдоним встроенного dict.

types.DictionaryType

Альтернативное имя для DictType.

types.FunctionType
types.LambdaType

Тип пользовательских функций и функций, созданных выражениями lambda.

types.GeneratorType

Тип объектов-итераторов generator, создаваемых вызовом генераторной функции.

Новое в версии 2.2.

types.CodeType

Тип объектов кода, возвращаемых compile().

types.ClassType

Тип пользовательских классов старого стиля.

types.InstanceType

Тип экземпляров пользовательских классов старого стиля.

types.MethodType

Тип методов экземпляров пользовательских классов.

types.UnboundMethodType

Альтернативное имя для MethodType.

types.BuiltinFunctionType
types.BuiltinMethodType

Тип встроенных функций, таких как len() или sys.exit(), и методов встроенных классов. (Здесь термин «встроенный» означает «написанный на C».)

types.ModuleType

Тип модулей.

types.FileType

Тип открытых файловых объектов, таких как sys.stdout; псевдоним встроенного file.

types.XRangeType

Тип объектов range, возвращаемых xrange(); псевдоним встроенного xrange.

types.SliceType

Тип объектов, возвращаемых slice(); псевдоним встроенного slice.

types.EllipsisType

Тип Ellipsis.

types.TracebackType

Тип объектов traceback, таких как в sys.exc_traceback.

types.FrameType

Тип объектов фреймов, которые можно найти в tb.tb_frame, если tb является объектом traceback.

types.BufferType

Тип буферных объектов, создаваемых функцией buffer().

types.DictProxyType

Тип прокси-словарей, таких как TypeType.__dict__.

types.NotImplementedType

Тип NotImplemented

types.GetSetDescriptorType

Тип объектов, определенных в модулях расширения с помощью PyGetSetDef, таких как FrameType.f_locals или array.array.typecode. Этот тип используется в качестве дескриптора атрибутов объектов; он имеет то же назначение, что и тип property, но для классов, определенных в модулях расширения.

Новое в версии 2.5.

types.MemberDescriptorType

Тип объектов, определённых в модулях расширения с помощью PyMemberDef, таких как datetime.timedelta.days. Этот тип используется как дескриптор для простых элементов данных C, которые используют стандартные функции преобразования; он имеет то же назначение, что и тип property, но для классов, определённых в модулях расширения.

Особенность реализации CPython: В других реализациях Python этот тип может быть идентичен GetSetDescriptorType.

Новое в версии 2.5.

types.StringTypes

Последовательность, содержащая StringType и UnicodeType, используемая для упрощения проверки любого строкового объекта. Использование этого более переносимо, чем использование последовательности двух строковых типов, созданной в другом месте, поскольку она содержит UnicodeType только в том случае, если он был встроен в работающую версию Python. Например: isinstance(s, types.StringTypes).

Новое в версии 2.2.