.. versionadded:: 3.10
-.. data:: FunctionType
- LambdaType
+.. class:: FunctionType
+ LambdaType
The type of user-defined functions and functions created by
:keyword:`lambda` expressions.
and is not raised for normal compilation.
-.. data:: GeneratorType
+.. class:: GeneratorType
The type of :term:`generator`-iterator objects, created by
generator functions.
-.. data:: CoroutineType
+.. class:: CoroutineType
The type of :term:`coroutine` objects, created by
:keyword:`async def` functions.
.. versionadded:: 3.5
-.. data:: AsyncGeneratorType
+.. class:: AsyncGeneratorType
The type of :term:`asynchronous generator`-iterator objects, created by
asynchronous generator functions.
required by the initializer. The audit event only occurs for direct
instantiation of code objects, and is not raised for normal compilation.
-.. data:: CellType
+.. class:: CellType
The type for cell objects: such objects are used as containers for
a function's :term:`closure variables <closure variable>`.
.. versionadded:: 3.8
-.. data:: MethodType
+.. class:: MethodType
The type of methods of user-defined class instances.
-.. data:: BuiltinFunctionType
- BuiltinMethodType
+.. class:: BuiltinFunctionType
+ BuiltinMethodType
The type of built-in functions like :func:`len` or :func:`sys.exit`, and
methods of built-in classes. (Here, the term "built-in" means "written in
C".)
-.. data:: WrapperDescriptorType
+.. class:: WrapperDescriptorType
The type of methods of some built-in data types and base classes such as
:meth:`object.__init__` or :meth:`object.__lt__`.
.. versionadded:: 3.7
-.. data:: MethodWrapperType
+.. class:: MethodWrapperType
The type of *bound* methods of some built-in data types and base classes.
For example it is the type of :code:`object().__str__`.
.. versionadded:: 3.10
-.. data:: MethodDescriptorType
+.. class:: MethodDescriptorType
The type of methods of some built-in data types such as :meth:`str.join`.
.. versionadded:: 3.7
-.. data:: ClassMethodDescriptorType
+.. class:: ClassMethodDescriptorType
The type of *unbound* class methods of some built-in data types such as
``dict.__dict__['fromkeys']``.
dynamically.
-.. data:: FrameType
+.. class:: FrameType
The type of :ref:`frame objects <frame-objects>` such as found in
:attr:`tb.tb_frame <traceback.tb_frame>` if ``tb`` is a traceback object.
-.. data:: FrameLocalsProxyType
+.. class:: FrameLocalsProxyType
The type of frame locals proxy objects, as found on the
:attr:`frame.f_locals` attribute.
.. seealso:: :pep:`667`
-.. data:: LazyImportType
+.. class:: LazyImportType
The type of lazy import proxy objects. These objects are created when a
module is lazily imported and serve as placeholders until the module is
.. seealso:: :pep:`810`
-.. data:: GetSetDescriptorType
+.. class:: GetSetDescriptorType
The type of objects defined in extension modules with ``PyGetSetDef``, such
as :attr:`FrameType.f_locals <frame.f_locals>` or ``array.array.typecode``.
:class:`property` type, but for classes defined in extension modules.
-.. data:: MemberDescriptorType
+.. class:: MemberDescriptorType
The type of objects defined in extension modules with ``PyMemberDef``, such
as ``datetime.timedelta.days``. This type is used as descriptor for simple C
import myapp.slow_module # lazy (matches filter)
import json # eager (does not match filter)
-The proxy type itself is available as :data:`types.LazyImportType` for code
+The proxy type itself is available as :class:`types.LazyImportType` for code
that needs to detect lazy imports programmatically.
There are some restrictions on where the ``lazy`` keyword can be used. Lazy
-----
* Expose the write-through :func:`locals` proxy type
- as :data:`types.FrameLocalsProxyType`.
+ as :class:`types.FrameLocalsProxyType`.
This represents the type of the :attr:`frame.f_locals` attribute,
as described in :pep:`667`.