"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo especificar tipos de funciones en sugerencias de tipo Python?

¿Cómo especificar tipos de funciones en sugerencias de tipo Python?

Publicado el 2024-12-22
Navegar:874

How to Specify Function Types in Python Type Hints?

Especificar el tipo de función en sugerencias de tipo

En Python, las sugerencias de tipo se utilizan para proporcionar metadatos opcionales sobre los tipos esperados de variables y parámetros de función . Sin embargo, especificar la sugerencia de tipo de una variable como tipo de función puede parecer poco claro.

La solución

A pesar de la falta de una "función de escritura" en el archivo correspondiente PEP 483, puede especificar la sugerencia de tipo de una variable como un tipo de función usando "typing.Callable".

Implementación

La sintaxis para especificar un tipo de función usando "typing.Callable" es la siguiente:

from typing import Callable

def my_function(func: Callable):

Nota: Callable por sí solo es equivalente a "Callable[..., Any]", lo que significa que toma cualquier número y tipo de argumentos y devuelve un valor de cualquier tipo. Si esto no tiene restricciones, puede especificar aún más los tipos de lista de argumentos de entrada y el tipo de retorno.

Por ejemplo, para una función que toma dos números enteros y devuelve un número entero:

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

La anotación de tipo correspondiente be:

Callable[[int, int], int]

Sintaxis general

La sintaxis general para especificar un tipo de función usando "typing. Invocable" es:

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3