Their intended purpose is to be building blocks for creating and declaring
types.
-.. class:: NamedTuple
+.. function:: NamedTuple
Typed version of :func:`collections.namedtuple`.
Removed the ``_field_types`` attribute in favor of the more
standard ``__annotations__`` attribute which has the same information.
+ .. versionchanged:: 3.9
+ ``NamedTuple`` is now a function rather than a class.
+ It can still be used as a class base, as described above.
+
.. versionchanged:: 3.11
Added support for generic namedtuples.
for more details.
-.. class:: TypedDict(dict)
+.. function:: TypedDict
Special construct to add type hints to a dictionary.
- At runtime it is a plain :class:`dict`.
+ At runtime ":class:`!TypedDict` instances" are simply :class:`dicts <dict>`.
``TypedDict`` declares a dictionary type that expects all of its
instances to have a certain set of keys, where each key is
.. versionadded:: 3.8
+ .. versionchanged:: 3.9
+ ``TypedDict`` is now a function rather than a class.
+ It can still be used as a class base, as described above.
+
.. versionchanged:: 3.11
Added support for marking individual keys as :data:`Required` or :data:`NotRequired`.
See :pep:`655`.