[PYTHON] Ich habe PEP-362 (Function Signature Object) gelesen.

Am Ende las ich PEP 362 --Function Signature Object, um zu verstehen, woher das Attribut __signature__ stammt. Notieren Sie sich also Ihr Verständnis.

Überblick

Impressionen

Der Rest ist eine detaillierte Verwendung, daher werde ich die Erklärung weglassen. Sie können PEP 362 oder die [Inspektionsseite] in der Python-Dokumentation lesen (https://docs.python.org/ja/3/library/inspect.html#introspecting-callables-with-the-signature-object). Sie können lesen. Früher haben wir Funktionssignaturen mit "inspect.getargspec ()" und Objektattributen gelesen, aber jetzt reicht "inspect.signature ()" für die meisten Dinge aus. Viva, Unterschrift.

Nun wurde in diesem PEP auch die erste Frage "signature" erwähnt. Wenn Sie das Objekt "Signatur" in "func .__ Signatur" speichern, gibt "inspect.signature ()" diesen Wert zurück. Mit anderen Worten, es ist wie ein Cache.

Obwohl die C-Erweiterung in PEP 362 ausgeschlossen wurde, wurde Argument Clinic How-To gescannt. Soweit ich das beurteilen kann, scheint das Erstellen einer C-Erweiterung mit (und daher) mit Argument Clinic, einem Präprozessor für C-Dateien, ein Modul zu erstellen, das Signatur unterstützt. Es ist bequem.

Es gibt nicht viele Situationen, in denen Sie eine Funktionssignatur benötigen, aber es ist nützlich, um sich über Argumente und Funktionstypen zu informieren. Probieren Sie es also aus.

Recommended Posts

Ich habe PEP-362 (Function Signature Object) gelesen.
Ich habe PEP-593 gelesen (Flexible Funktion und variable Anmerkungen)
Ich habe PEP 613 (Explicit Type Aliases) gelesen.
Ich habe PEP 612 (Parameter Specification Variables) gelesen.
Ich habe PEP 604 (Komplementäre Syntax für Union []) gelesen.
Ich habe PEP 618 gelesen (Optionale Längenprüfung zum Reißverschluss hinzufügen)
Ich habe PEP 614 (Lockerung der Grammatikbeschränkungen für Dekorateure) gelesen.
Ich las PEP-544 (Protokolle: Strukturelle Subtypisierung (statische Ententypisierung))
Ich habe PEP 585 gelesen (Type Hinting Generics In Standard Collections)