"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment spécifier des types de fonctions dans les astuces de type Python ?

Comment spécifier des types de fonctions dans les astuces de type Python ?

Publié le 2024-12-22
Parcourir:662

How to Specify Function Types in Python Type Hints?

Spécification du type de fonction dans les indications de type

En Python, les indications de type sont utilisées pour fournir des métadonnées facultatives sur les types attendus de variables et de paramètres de fonction . Cependant, spécifier l'indice de type d'une variable en tant que type de fonction peut sembler flou.

La solution

Malgré l'absence de "typing.Function" dans le PEP 483, vous pouvez spécifier l'indice de type d'une variable comme type de fonction en utilisant "typing.Callable."

Implémentation

La syntaxe permettant de spécifier un type de fonction à l'aide de "typing.Callable" est la suivante :

from typing import Callable

def my_function(func: Callable):

Remarque : Callable seul équivaut à "Callable[..., Any]", ce qui signifie qu'il prend n'importe quel nombre et type d'arguments et renvoie une valeur de n'importe quel type. Si cela est trop libre, vous pouvez spécifier davantage les types de liste d'arguments d'entrée et le type de retour.

Par exemple, pour une fonction qui prend deux entiers et renvoie un entier :

def sum(a: int, b: int) -> int: return a b

L'annotation de type correspondante serait :

Callable[[int, int], int]

Syntaxe générale

La syntaxe générale pour spécifier un type de fonction à l'aide de "typing.Callable" est :

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3