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.FunctionTypetypes.LambdaType
由lambda
表达式创建的用户定义函数和函数的类型。
types.GeneratorType
通过调用生成器函数生成的生成器 - 生成器对象的类型。
2.2版本中的新功能。
types.CodeType
代码对象的类型,如返回的compile()
。
types.ClassType
用户定义的旧式类的类型。
types.InstanceType
用户定义的旧式类的实例的类型。
types.MethodType
用户定义的类实例的方法的类型。
types.UnboundMethodType
另一个名字MethodType
。
types.BuiltinFunctionTypetypes.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
if中找到)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版本中的新功能。