"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como especificar tipos de função em dicas de tipo Python?

Como especificar tipos de função em dicas de tipo Python?

Publicado em 2024-12-22
Navegar:660

How to Specify Function Types in Python Type Hints?

Especificando o tipo de função em dicas de tipo

Em Python, dicas de tipo são usadas para fornecer metadados opcionais sobre os tipos esperados de variáveis ​​e parâmetros de função . No entanto, especificar a dica de tipo de uma variável como um tipo de função pode parecer pouco claro.

A solução

Apesar da falta de uma "typing.Function" no PEP 483, você pode especificar a dica de tipo de uma variável como um tipo de função usando "typing.Callable."

Implementação

A sintaxe para especificar um tipo de função usando "typing.Callable" é a seguinte:

from typing import Callable

def my_function(func: Callable):

Nota: Callable por si só é equivalente a "Callable[..., Any]", o que significa que aceita qualquer número e tipo de argumentos e retorna um valor de qualquer tipo. Se isso for muito irrestrito, você poderá especificar ainda mais os tipos da lista de argumentos de entrada e o tipo de retorno.

Por exemplo, para uma função que recebe dois inteiros e retorna um inteiro:

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

A anotação de tipo correspondente seria:

Callable[[int, int], int]

Sintaxe geral

A sintaxe geral para especificar um tipo de função usando "typing.Callable" é:

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3