gh-129567: Add a note to `typing.TypedDict` docs about name mangling (#130233)

This commit is contained in:
sobolevn 2025-03-04 18:15:00 +03:00 committed by GitHub
parent f67ff9e820
commit 63ffb406bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 1 deletions

View File

@ -2551,15 +2551,20 @@ types.
This functional syntax allows defining keys which are not valid
:ref:`identifiers <identifiers>`, for example because they are
keywords or contain hyphens::
keywords or contain hyphens, or when key names must not be
:ref:`mangled <private-name-mangling>` like regular private names::
# raises SyntaxError
class Point2D(TypedDict):
in: int # 'in' is a keyword
x-y: int # name with hyphens
class Definition(TypedDict):
__schema: str # mangled to `_Definition__schema`
# OK, functional syntax
Point2D = TypedDict('Point2D', {'in': int, 'x-y': int})
Definition = TypedDict('Definition', {'__schema': str}) # not mangled
By default, all keys must be present in a ``TypedDict``. It is possible to
mark individual keys as non-required using :data:`NotRequired`::