Home | History | Annotate | Download | only in library
      1 :mod:`types` --- Names for built-in types
      2 =========================================
      3 
      4 .. module:: types
      5    :synopsis: Names for built-in types.
      6 
      7 **Source code:** :source:`Lib/types.py`
      8 
      9 --------------
     10 
     11 This module defines names for some object types that are used by the standard
     12 Python interpreter, but not for the types defined by various extension modules.
     13 Also, it does not include some of the types that arise during processing such as
     14 the ``listiterator`` type. It is safe to use ``from types import *`` --- the
     15 module does not export any names besides the ones listed here. New names
     16 exported by future versions of this module will all end in ``Type``.
     17 
     18 Typical use is for functions that do different things depending on their
     19 argument types, like the following::
     20 
     21    from types import *
     22    def delete(mylist, item):
     23        if type(item) is IntType:
     24           del mylist[item]
     25        else:
     26           mylist.remove(item)
     27 
     28 Starting in Python 2.2, built-in factory functions such as :func:`int` and
     29 :func:`str` are also names for the corresponding types.  This is now the
     30 preferred way to access the type instead of using the :mod:`types` module.
     31 Accordingly, the example above should be written as follows::
     32 
     33    def delete(mylist, item):
     34        if isinstance(item, int):
     35           del mylist[item]
     36        else:
     37           mylist.remove(item)
     38 
     39 The module defines the following names:
     40 
     41 
     42 .. data:: NoneType
     43 
     44    The type of ``None``.
     45 
     46 
     47 .. data:: TypeType
     48 
     49    .. index:: builtin: type
     50 
     51    The type of type objects (such as returned by :func:`type`); alias of the
     52    built-in :class:`type`.
     53 
     54 
     55 .. data:: BooleanType
     56 
     57    The type of the :class:`bool` values ``True`` and ``False``; alias of the
     58    built-in :class:`bool`.
     59 
     60    .. versionadded:: 2.3
     61 
     62 
     63 .. data:: IntType
     64 
     65    The type of integers (e.g. ``1``); alias of the built-in :class:`int`.
     66 
     67 
     68 .. data:: LongType
     69 
     70    The type of long integers (e.g. ``1L``); alias of the built-in :class:`long`.
     71 
     72 
     73 .. data:: FloatType
     74 
     75    The type of floating point numbers (e.g. ``1.0``); alias of the built-in
     76    :class:`float`.
     77 
     78 
     79 .. data:: ComplexType
     80 
     81    The type of complex numbers (e.g. ``1.0j``).  This is not defined if Python was
     82    built without complex number support.
     83 
     84 
     85 .. data:: StringType
     86 
     87    The type of character strings (e.g. ``'Spam'``); alias of the built-in
     88    :class:`str`.
     89 
     90 
     91 .. data:: UnicodeType
     92 
     93    The type of Unicode character strings (e.g. ``u'Spam'``).  This is not defined
     94    if Python was built without Unicode support.  It's an alias of the built-in
     95    :class:`unicode`.
     96 
     97 
     98 .. data:: TupleType
     99 
    100    The type of tuples (e.g. ``(1, 2, 3, 'Spam')``); alias of the built-in
    101    :class:`tuple`.
    102 
    103 
    104 .. data:: ListType
    105 
    106    The type of lists (e.g. ``[0, 1, 2, 3]``); alias of the built-in
    107    :class:`list`.
    108 
    109 
    110 .. data:: DictType
    111 
    112    The type of dictionaries (e.g. ``{'Bacon': 1, 'Ham': 0}``); alias of the
    113    built-in :class:`dict`.
    114 
    115 
    116 .. data:: DictionaryType
    117 
    118    An alternate name for ``DictType``.
    119 
    120 
    121 .. data:: FunctionType
    122           LambdaType
    123 
    124    The type of user-defined functions and functions created by :keyword:`lambda`
    125    expressions.
    126 
    127 
    128 .. data:: GeneratorType
    129 
    130    The type of :term:`generator`-iterator objects, produced by calling a
    131    generator function.
    132 
    133    .. versionadded:: 2.2
    134 
    135 
    136 .. data:: CodeType
    137 
    138    .. index:: builtin: compile
    139 
    140    The type for code objects such as returned by :func:`compile`.
    141 
    142 
    143 .. data:: ClassType
    144 
    145    The type of user-defined old-style classes.
    146 
    147 
    148 .. data:: InstanceType
    149 
    150    The type of instances of user-defined old-style classes.
    151 
    152 
    153 .. data:: MethodType
    154 
    155    The type of methods of user-defined class instances.
    156 
    157 
    158 .. data:: UnboundMethodType
    159 
    160    An alternate name for ``MethodType``.
    161 
    162 
    163 .. data:: BuiltinFunctionType
    164           BuiltinMethodType
    165 
    166    The type of built-in functions like :func:`len` or :func:`sys.exit`, and
    167    methods of built-in classes.  (Here, the term "built-in" means "written in
    168    C".)
    169 
    170 
    171 .. data:: ModuleType
    172 
    173    The type of modules.
    174 
    175 
    176 .. data:: FileType
    177 
    178    The type of open file objects such as ``sys.stdout``; alias of the built-in
    179    :class:`file`.
    180 
    181 
    182 .. data:: XRangeType
    183 
    184    .. index:: builtin: xrange
    185 
    186    The type of range objects returned by :func:`xrange`; alias of the built-in
    187    :class:`xrange`.
    188 
    189 
    190 .. data:: SliceType
    191 
    192    .. index:: builtin: slice
    193 
    194    The type of objects returned by :func:`slice`; alias of the built-in
    195    :class:`slice`.
    196 
    197 
    198 .. data:: EllipsisType
    199 
    200    The type of ``Ellipsis``.
    201 
    202 
    203 .. data:: TracebackType
    204 
    205    The type of traceback objects such as found in ``sys.exc_traceback``.
    206 
    207 
    208 .. data:: FrameType
    209 
    210    The type of frame objects such as found in ``tb.tb_frame`` if ``tb`` is a
    211    traceback object.
    212 
    213 
    214 .. data:: BufferType
    215 
    216    .. index:: builtin: buffer
    217 
    218    The type of buffer objects created by the :func:`buffer` function.
    219 
    220 
    221 .. data:: DictProxyType
    222 
    223    The type of dict proxies, such as ``TypeType.__dict__``.
    224 
    225 
    226 .. data:: NotImplementedType
    227 
    228    The type of ``NotImplemented``
    229 
    230 
    231 .. data:: GetSetDescriptorType
    232 
    233    The type of objects defined in extension modules with ``PyGetSetDef``, such
    234    as ``FrameType.f_locals`` or ``array.array.typecode``.  This type is used as
    235    descriptor for object attributes; it has the same purpose as the
    236    :class:`property` type, but for classes defined in extension modules.
    237 
    238    .. versionadded:: 2.5
    239 
    240 
    241 .. data:: MemberDescriptorType
    242 
    243    The type of objects defined in extension modules with ``PyMemberDef``, such
    244    as ``datetime.timedelta.days``.  This type is used as descriptor for simple C
    245    data members which use standard conversion functions; it has the same purpose
    246    as the :class:`property` type, but for classes defined in extension modules.
    247 
    248    .. impl-detail::
    249 
    250       In other implementations of Python, this type may be identical to
    251       ``GetSetDescriptorType``.
    252 
    253    .. versionadded:: 2.5
    254 
    255 
    256 .. data:: StringTypes
    257 
    258    A sequence containing ``StringType`` and ``UnicodeType`` used to facilitate
    259    easier checking for any string object.  Using this is more portable than using a
    260    sequence of the two string types constructed elsewhere since it only contains
    261    ``UnicodeType`` if it has been built in the running version of Python.  For
    262    example: ``isinstance(s, types.StringTypes)``.
    263 
    264    .. versionadded:: 2.2
    265