Betrachten Sie folgenden Code:
from collections import namedtuple
point = namedtuple("Point", ("x:int", "y:int"))
Der obige Kodex ist nur ein Weg, um zu demonstrieren, was ich erreichen möchte. Ich möchte namedtuple
mit Typhinweisen machen.
Kennen Sie einen eleganten Weg, um das beabsichtigte Ergebnis zu erzielen?
python
python-3.x
type-hinting
namedtuple
python-dataclasses
Pavel Hanpari
quelle
quelle
Antworten:
Die bevorzugte Syntax für ein typisiertes benanntes Tupel seit 3.6 ist
Bearbeiten Starten Sie Python 3.7 und erwägen Sie die Verwendung
dataclasses
(Ihre IDE unterstützt sie möglicherweise noch nicht für die statische Typprüfung):quelle
Sie können verwenden
typing.NamedTuple
Aus den Dokumenten
Dies ist nur in Python 3.5 verfügbar
quelle
GeoPoint = NamedTuple('GeoPoint', [('longitude', float), ('latitude', float)])
Dann versuche ich geo = GeoPoint (** Daten), wobei Daten diktiert werden, die die erforderlichen Schlüssel und Werte enthaltendecimal.Decimal
, und keine Umwandlung in Float erfolgt (auch kein Typerror :( :( Wietyping.NamedTuple
funktioniert das? Siehe Inhalt) .github.com / andilabs / 15002176b2bda786b9037077fa06cc71