8.15. types — 内置类型的名称 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/types
跳转至:导航、​搜索

8.15. 类型 — 内置类型的名称

源代码: :source:`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()返回); 内置 类型 的别名。
types.BooleanType

boolTrueFalse 的类型; 内置 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')); 内置 元组 的别名。
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-iterator 对象的类型,通过调用生成器函数生成。

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; 内置 文件 的别名。
types.XRangeType
xrange()返回的range对象类型; 内置 xrange 的别名。
types.SliceType
slice()返回的对象类型; 内置 切片 的别名。
types.EllipsisType
Ellipsis 的类型。
types.TracebackType
回溯对象的类型,例如在 sys.exc_traceback 中找到。
types.FrameType
如果 tb 是回溯对象,则在 tb.tb_frame 中找到的框架对象的类型。
types.BufferType
buffer() 函数创建的缓冲区对象的类型。
types.DictProxyType
dict 代理的类型,例如 TypeType.__dict__
types.NotImplementedType
NotImplemented的类型
types.GetSetDescriptorType

扩展模块中定义的对象类型,带有 PyGetSetDef,例如 FrameType.f_localsarray.array.typecode。 该类型用作对象属性的描述符; 它与 property 类型具有相同的用途,但用于扩展模块中定义的类。

2.5 版中的新功能。

types.MemberDescriptorType

扩展模块中定义的对象类型为PyMemberDef,如datetime.timedelta.days。 此类型用作使用标准转换函数的简单 C 数据成员的描述符; 它与 property 类型具有相同的用途,但用于扩展模块中定义的类。

2.5 版中的新功能。

types.StringTypes

包含 StringTypeUnicodeType 的序列,用于方便检查任何字符串对象。 使用它比使用在其他地方构造的两种字符串类型的序列更具可移植性,因为它只包含 UnicodeType 如果它是在运行的 Python 版本中构建的。 例如:isinstance(s, types.StringTypes)

2.2 版中的新功能。