Spec-Zone.ru › Python 2.7

типы — Имена встроенных типов

Исходный код: 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

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

Введено в версии 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

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

types.SliceType

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

types.EllipsisType

Тип Ellipsis.

types.TracebackType

Тип объектов отладки, таких как те, которые находятся в sys.exc_traceback.

types.FrameType

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

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.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/types.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API