2015-12-14 9 views
28

Considerare seguente frammento di codice:Tipo osservazioni in namedtuple

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

il codice qui sopra è solo un modo per dimostrare come a quello che sto cercando di realizzare. Vorrei fare namedtuple con suggerimenti tipo.

Conoscete in modo elegante come ottenere risultati come previsto?

risposta

44

È possibile utilizzare typing.NamedTuple

Dalla documentazione

versione Typed di namedtuple.

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

Questo è presente solo in Python 3.5 in poi

+0

ho dichiarato così: 'GeoPoint = namedtuple ('GeoPoint', [('longitudine', float), ('latitudine', galleggiante)]) 'poi provo geo = GeoPoint (** data) dove i dati sono dict contenenti le chiavi necessarie ei valori sono' decimal.Decimal', e non viene eseguito alcun cast per il float; (no typerror neanche :(:(quindi come questo ' typing.NamedTuple' funziona? consulta https://gist.github.com/andilabs/15002176b2bda786b9037077fa06cc71 – andi

+4

la digitazione @andi non applica o esegue il cast delle variabili, afaik. –

Problemi correlati