типы — Имена встроенных типов
Исходный код: 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.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.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