Unterschied zwischen Typing.Dict & Dict und ihrer Verwendung in Python

Unterschied zwischen Typing.Dict & Dict und ihrer Verwendung in Python

Wenn wir ein Wörterbuch als Argument in einer Python-Funktion deklarieren, würden wir im Allgemeinen den Schlüssel- und Wertdatentyp als globale Variable deklarieren, nicht als lokale.

Was ist, wenn wir den Datentyp der Wörterbuchschlüssel und -werte als lokale Variable deklarieren müssen? Dieser Artikel beschreibt, wie wir Typhinweise mit typing.Dict verwenden und sie von der üblichen dict-Funktion unterscheiden können.

Unterschied zwischen typing.Dict & dict und ihrer Verwendung in Python

Es gibt keinen realen Unterschied zwischen der Verwendung eines typing.Dict und eines einfachen dict, wenn ein Wörterbuch als Argument in einer Python-Funktion deklariert wird.

Die Funktion typing.Dict ist jedoch eine Generic type-Funktion, mit der wir den Datentyp der Schlüssel und Werte angeben können, was sie flexibler macht.

Da wir außerdem Typinformationen über Objekte, die generisch in Containern aufbewahrt werden, nicht statisch ableiten können, wurden abstrakte Basisklassen erweitert, um Subskriptionen zu unterstützen, um allgemeine Typen für Containerelemente zu bezeichnen.

def exampleFunction(typing.Dict[str, int])

Zum Beispiel möchten wir irgendwann in unserem Projekt das Dictionary-Argument etwas genauer definieren, an diesem Punkt ist das Erweitern von typing.Dict auf typing.Dict[key_type, value_type] eine kleinere Änderung als das Ersetzen das ganze Wörterbuch mit dict().

Wir können unsere Wörterbücher generischer gestalten, indem wir die Typen Mapping oder MutableMapping verwenden. Ein Wörterbuch ist eine Zuordnung, aber wir könnten andere Objekte erstellen, die die Zuordnungsschnittstelle erfüllen.

def exampleFunction(typing.Mapping[str, int])

Beachten Sie, dass Python keine Typhinweise erzwingt. Sie sind nur Hinweise und werden nicht verwendet, um Typen zur Laufzeit oder Kompilierzeit zu implementieren.

Wenn wir jedoch Python Version 3.9 und höher verwenden, hat Python typing.Dict als veraltet markiert und stattdessen Typhinweise in den eingebauten dict()-Befehlen erzwungen. Wir können den Typ angeben, während wir ein Wörterbuch in Python deklarieren.

def exampleFunction(dict[str, int])
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn