Heim >Backend-Entwicklung >Python-Tutorial >Wie spezifiziere ich Funktionstypen in Python-Typhinweisen?

Wie spezifiziere ich Funktionstypen in Python-Typhinweisen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 09:03:031036Durchsuche

How to Specify Function Types in Python Type Hints?

Funktionstyp in Typhinweisen angeben

In Python werden Typhinweise verwendet, um optionale Metadaten über die erwarteten Typen von Variablen und Funktionsparametern bereitzustellen . Allerdings kann die Angabe des Typhinweises einer Variablen als Funktionstyp unklar erscheinen.

Die Lösung

Trotz des Fehlens einer „typing.Function“ im relevanten PEP 483 können Sie den Typhinweis einer Variablen als Funktionstyp mit „typing.Callable“ angeben.

Implementierung

Die Syntax zum Angeben eines Funktionstyps mit „typing.Callable“ lautet wie folgt:

from typing import Callable

def my_function(func: Callable):

Hinweis: Callable allein ist äquivalent zu „Callable[..., Any]“, was bedeutet, dass es eine beliebige Zahl annimmt und Art der Argumente und gibt einen Wert beliebigen Typs zurück. Wenn dies zu uneingeschränkt ist, können Sie die Typen der Eingabeargumentliste und des Rückgabetyps weiter angeben.

Zum Beispiel für eine Funktion, die zwei Ganzzahlen akzeptiert und eine Ganzzahl zurückgibt:

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

Die entsprechende Typanmerkung wäre:

Callable[[int, int], int]

Allgemeine Syntax

Die allgemeine Syntax zum Angeben eines Funktionstyps mithilfe von „typing.Callable“ lautet:

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

Das obige ist der detaillierte Inhalt vonWie spezifiziere ich Funktionstypen in Python-Typhinweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn