Heim > Backend-Entwicklung > Python-Tutorial > Wie spezifiziere ich Funktionstypen in Typhinweisen mit „typing.Callable'?

Wie spezifiziere ich Funktionstypen in Typhinweisen mit „typing.Callable'?

Mary-Kate Olsen
Freigeben: 2024-11-23 02:05:13
Original
508 Leute haben es durchsucht

How to Specify Function Types in Type Hints with `typing.Callable`?

Funktionstypen in Typhinweisen angeben

In Typhinweisen kann die Angabe des Typs einer Variablen als Funktion ohne eine dedizierte „typing.Function“-Klasse oder eine Herausforderung erscheinen Anleitung in PEP 483. Die Lösung liegt jedoch in der Verwendung von „typing.Callable“.

Durch Hebelwirkung „typing.Callable“ können Sie Funktionstypen in Ihren Anmerkungen deklarieren. Zum Beispiel:

from typing import Callable

def my_function(func: Callable):
Nach dem Login kopieren

Es ist wichtig zu beachten, dass „Callable“ allein gleichbedeutend mit „Callable[..., Any]“ ist. Dies bedeutet, dass die aufrufbare Funktion eine beliebige Anzahl und einen beliebigen Typ von Argumenten (...) akzeptiert und einen Wert eines beliebigen Typs (Any) zurückgibt.

Wenn Sie strengere Einschränkungen benötigen, können Sie die Eingabeargumenttypen und die Rückgabe angeben explizit eingeben. Betrachten Sie zum Beispiel die Funktion „Summe“:

def sum(a: int, b: int) -> int: return a+b
Nach dem Login kopieren

Ihre entsprechende Anmerkung wäre:

Callable[[int, int], int]
Nach dem Login kopieren

In dieser Anmerkung werden die Parameter in eckigen Klammern und die Rückgabe angegeben Der Typ wird als zweites Element innerhalb der eckigen Klammern angegeben. Die Syntax zum Angeben von Funktionstypen lautet im Allgemeinen:

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage