Maison >développement back-end >Tutoriel Python >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 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-19 09:03:031069parcourir

How to Specify Function Types in Python Type Hints?

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

En Python, les indices de type sont utilisés 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 comme 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 en tant que type de fonction en utilisant "typing.Callable".

Implémentation

La syntaxe pour spécifier un type de fonction en utilisant "typing.Callable" est le suivant :

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 le 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]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn