Rozważ następujący fragment kodu:
from collections import namedtuple
point = namedtuple("Point", ("x:int", "y:int"))
Powyższy Kod jest tylko sposobem na zademonstrowanie tego, co próbuję osiągnąć. Chciałbym zrobić namedtuple
ze wskazówkami dotyczącymi typu.
Czy znasz jakiś elegancki sposób, jak osiągnąć zamierzony efekt?
python
python-3.x
type-hinting
namedtuple
python-dataclasses
Pavel Hanpari
źródło
źródło
Odpowiedzi:
Preferowana składnia dla wpisanej nazwanej krotki od wersji 3.6 to
Edytuj Uruchamianie Pythona 3.7, rozważ użycie
dataclasses
(Twoje IDE może jeszcze nie obsługiwać ich do sprawdzania typu statycznego):źródło
Możesz użyć
typing.NamedTuple
Z dokumentów
Jest to obecne tylko w Pythonie 3.5 i nowszych
źródło
GeoPoint = NamedTuple('GeoPoint', [('longitude', float), ('latitude', float)])
następnie próbuję geo = GeoPoint (** dane), gdzie dane są dict zawierające potrzebne klucze i wartościdecimal.Decimal
, i nie następuje rzutowanie do float; (również nie ma błędu :( :( więc jak totyping.NamedTuple
działa? Zobacz streszczenie) .github.com / andilabs / 15002176b2bda786b9037077fa06cc71