J'ai lu PEP-362 (objet de signature de fonction)

J'ai fini par lire PEP 362 - Objet Signature de Fonction pour comprendre d'où venait l'attribut «signature». Prenez donc note de votre compréhension.

Aperçu

Impressions

Le reste est une utilisation détaillée, je vais donc omettre l'explication. Vous pouvez lire PEP 362 ou [inspecter la page] dans la documentation Python (https://docs.python.org/ja/3/library/inspect.html#introspecting-callables-with-the-signature-object) Vous pouvez lire. Dans le passé, nous avions l'habitude de lire les signatures de fonctions en utilisant ʻinspect.getargspec () `et les attributs d'objet, mais maintenant ʻinspect.signature () ʻest suffisant pour la plupart des choses. Viva, Signature.

Maintenant, la première question, «signature», a également été mentionnée dans ce PEP. Si vous enregistrez l'objet Signature dans func .__ signature__, ʻinspect.signature ()` retournera cette valeur. En d'autres termes, c'est comme un cache.

De plus, bien que l'extension C ait été exclue dans PEP 362, j'ai scanné Argument Clinic How-To. Pour autant que je sache, créer une extension C en utilisant (et donc) en utilisant Argument Clinic, un préprocesseur pour les fichiers C, semble créer un module qui prend en charge Signature. C'est pratique.

Il n'y a pas beaucoup de situations où vous avez besoin d'une signature de fonction, mais c'est utile pour découvrir les arguments et les types de fonction, alors pourquoi ne pas essayer?

Recommended Posts

J'ai lu PEP-362 (objet de signature de fonction)
J'ai lu PEP-593 (fonction flexible et annotations variables)
J'ai lu PEP 613 (alias de type explicite)
J'ai lu PEP 612 (Variables de spécification des paramètres)
J'ai lu PEP 604 (syntaxe complémentaire pour Union []).
J'ai lu PEP 618 (Ajouter une vérification de longueur facultative à la fermeture éclair)
J'ai lu PEP 614 (Relaxing Grammar Restrictions on Decorators)
J'ai lu PEP-544 (Protocoles: sous-typage structurel (typage statique du canard))
J'ai lu PEP 585 (Type Hinting Generics In Standard Collections)