2015-12-14 35 views
28

Rozważmy następujący fragment kodu:podpowiedzi typu w namedtuple

from collections import namedtuple 
point = namedtuple("Point", ("x:int", "y:int")) 

Powyższy kod jest tylko sposobem, aby wykazać, co staram się osiągnąć. Chciałbym zrobić namedtuple z podpowiedziami typu.

Czy znasz jakiś elegancki sposób na osiągnięcie zamierzonego rezultatu?

Odpowiedz

44

Można użyć typing.NamedTuple

Od docs

wersja Wpisane z namedtuple.

>>> import typing 
>>> Point = typing.NamedTuple("Point", [('x', int), ('y', int)]) 

ta jest obecna tylko w Pythonie 3,5 r

+0

oświadczyłem tak: 'GeoPoint = NamedTuple ('GeoPoint', [('geograficznej' float) ('szerokości', pływak)])) 'następnie próbuję geo = GeoPoint (dane **) gdzie dane są dyktowane zawierające potrzebne klucze i wartości będące" dziesiętnym.Decimalnym "i nie ma odlewania do float (nie ma typerror :(:(więc jak to się stało' ' typing.NamedTuple' działa? zobacz https://gist.github.com/andilabs/15002176b2bda786b9037077fa06cc71 – andi

+4

@andi typing nie wymusza ani nie rzuca zmiennych, afaik. –