„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie spezifiziere ich Funktionstypen in Python-Typhinweisen?

Wie spezifiziere ich Funktionstypen in Python-Typhinweisen?

Veröffentlicht am 22.12.2024
Durchsuche:996

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 . Die Angabe des Typhinweises einer Variablen als Funktionstyp kann jedoch unklar erscheinen.

Die Lösung

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

Implementierung

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

from typing import Callable

def my_function(func: Callable):

Hinweis: Callable allein entspricht „Callable[..., Any]“, was bedeutet, dass es eine beliebige Anzahl und Art von Argumenten akzeptiert 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ürde be:

Callable[[int, int], int]

Allgemeine Syntax

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

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3