[PYTHON] Ich habe PEP 585 gelesen (Type Hinting Generics In Standard Collections)

Als ich untersuchte, woher das Attribut "origin" stammt, wurde ein PEP mit dem Namen PEP 585 - Typ mit Hinweisen auf Generika in Standardsammlungen verwendet. Ich habe es gefunden, also habe ich den ursprünglichen Zweck vergessen und es überflogen. Ich bin immer noch im Entwurfsstatus, daher bin ich mir nicht sicher, ob er in Zukunft übernommen wird, aber ich werde mein Verständnis notieren.

Überblick

der Begriff

Ansatz

Verwenden Sie "list" oder "dict" anstelle der vorherigen "typing.List" oder "typing.Dict". das ist alles.

def find(haystack: dict[str, list[int]]) -> int:
    ...

Was nicht zu tun

Memo

Intern soll eine Instanz von "types.GenericAlias" erstellt werden. Daher können Typinformationen mit __origin__ oder __args__ abgerufen werden.

StrList = list[str]

assert isinstance(StrList, types.GenericAlias)
assert StrList.__origin__ is list
assert StrList.__args__ is (str,)

Impressionen

Nachtrag

Bevor ich es wusste, wurde beschlossen, PEP 585 (Akzeptiert) zu übernehmen, und es war in 3.9.0a6 verfügbar. Unten sehen Sie den Status von 3.9-dev, der vor einiger Zeit installiert wurde.

$ python3.9
Python 3.9.0a6+ (heads/master:7f7e706, May  9 2020, 13:35:20)
[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> list[int]
list[int]
>>> dict[str, int]
dict[str, int]
>>> tuple[int, ...]
tuple[int, ...]

Recommended Posts

Ich habe PEP 585 gelesen (Type Hinting Generics In Standard Collections)
Ich habe PEP 613 (Explicit Type Aliases) gelesen.
Beherrschung von Typhinweisen in PyCharm
Ich kann im Unterprozess keinen Standard eingeben ...
Ich habe PEP 612 (Parameter Specification Variables) gelesen.
Ich habe PEP 604 (Komplementäre Syntax für Union []) gelesen.
Ich habe PEP-362 (Function Signature Object) gelesen.
Ich habe PEP 618 gelesen (Optionale Längenprüfung zum Reißverschluss hinzufügen)
Ich habe PEP 584 gelesen (Add Union Operators To dict)
Ich habe PEP 614 (Lockerung der Grammatikbeschränkungen für Dekorateure) gelesen.
Ich habe PEP-593 gelesen (Flexible Funktion und variable Anmerkungen)