Maison >développement back-end >Tutoriel Python >Comment puis-je spécifier des types de fonctions dans les annotations Python à l'aide de « typing.Callable » ?

Comment puis-je spécifier des types de fonctions dans les annotations Python à l'aide de « typing.Callable » ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 20:55:13374parcourir

How Can I Specify Function Types in Python Annotations Using `typing.Callable`?

Spécification des types de fonctions dans les annotations

Dans l'indication de type Python, l'expression du type d'une variable en tant que fonction est essentielle pour garantir l'exactitude du code. Malgré l'absence d'annotation explicite de type typing.Function, il existe une solution utilisant typing.Callable.

Utilisation de typing.Callable pour les types de fonctions

Comme l'a souligné @jonrsharpe out, typing.Callable nous permet de définir des types de fonctions dans les annotations. Par exemple :

from typing import Callable

def my_function(func: Callable):

Ici, la variable func est indiquée comme une fonction qui accepte n'importe quel nombre et type d'arguments et renvoie une valeur de n'importe quel type.

Spécifier Types d'entrée et de retour

Pour des annotations plus précises, nous pouvons spécifier davantage les types d'arguments d'entrée et le type de retour de la fonction. Prenons l'exemple suivant :

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

L'annotation correspondante serait :

Callable[[int, int], int]

Cela indique que la fonction accepte deux arguments entiers et renvoie un entier.

Syntaxe générale

En général, la syntaxe des annotations de type de fonction en Python est :

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]

Où :

  • ParamType1, ..., ParamTypeN sont les types des arguments d'entrée
  • ReturnType est le type de la valeur de retour

En tirant parti de typing.Callable, nous pouvons spécifier efficacement les types de fonctions dans les annotations de type Python, améliorant ainsi lisibilité du code et garantie de l'exactitude du type.

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