cpython/Lib/types.py

88 lines
2.1 KiB
Python
Raw Normal View History

"""Define names for all type symbols known in the standard interpreter.
Types that are part of optional modules (e.g. array) are not listed.
"""
import sys
# Iterators in Python aren't a matter of type but of protocol. A large
# and changing number of builtin types implement *some* flavor of
# iterator. Don't check the type! Use hasattr to check for both
# "__iter__" and "next" attributes instead.
NoneType = type(None)
2001-08-02 01:15:00 -03:00
TypeType = type
ObjectType = object
IntType = int
LongType = long
FloatType = float
2002-05-21 20:17:12 -03:00
BooleanType = bool
1996-02-12 20:04:31 -04:00
try:
ComplexType = complex
1996-02-12 20:04:31 -04:00
except NameError:
pass
StringType = str
# StringTypes is already outdated. Instead of writing "type(x) in
# types.StringTypes", you should use "isinstance(x, basestring)". But
# we keep around for compatibility with Python 2.2.
try:
UnicodeType = unicode
StringTypes = (StringType, UnicodeType)
except NameError:
StringTypes = (StringType,)
BufferType = buffer
TupleType = tuple
2001-08-02 01:15:00 -03:00
ListType = list
DictType = DictionaryType = dict
1994-09-29 07:04:43 -03:00
def _f(): pass
FunctionType = type(_f)
LambdaType = type(lambda: None) # Same as FunctionType
try:
CodeType = type(_f.func_code)
except RuntimeError:
# Execution in restricted environment
pass
1994-09-29 07:04:43 -03:00
def _g():
yield 1
GeneratorType = type(_g())
1994-09-29 07:04:43 -03:00
class _C:
def _m(self): pass
1994-09-29 07:04:43 -03:00
ClassType = type(_C)
UnboundMethodType = type(_C._m) # Same as MethodType
MethodType = type(_C()._m)
1994-09-29 07:04:43 -03:00
BuiltinFunctionType = type(len)
BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
ModuleType = type(sys)
FileType = file
XRangeType = xrange
try:
raise TypeError
except TypeError:
try:
tb = sys.exc_info()[2]
TracebackType = type(tb)
FrameType = type(tb.tb_frame)
except AttributeError:
# In the restricted environment, exc_info returns (None, None,
# None) Then, tb.tb_frame gives an attribute error
pass
1997-09-29 20:22:12 -03:00
tb = None; del tb
SliceType = slice
EllipsisType = type(Ellipsis)
1996-10-11 13:00:06 -03:00
2001-08-02 01:15:00 -03:00
DictProxyType = type(TypeType.__dict__)
NotImplementedType = type(NotImplemented)
2001-08-02 01:15:00 -03:00
del sys, _f, _g, _C # Not for export