[Python] typing.NamedTuple - valori di default con definizione funzionale

Massimiliano della Rovere massimiliano.dellarovere a gmail.com
Mar 8 Mar 2022 21:12:19 CET


Errata: il codice di Links ovviamente è:

Links = typing.NamedTuple(
    "Links",
    tuple(
        (cardinal_point.value, int)
        for cardinal_point in CARDINAL_POINTS_6_NS))


ho anche provato ad aggiungere questa modifica dopo la creazione di Links,
ma non ha effetto.

Links._field_defaults = {
    cardinal_point.value: None
    for cardinal_point in CARDINAL_POINTS_6_NS
}

suppongo che provare a ridefinire __new__ possa essere la soluzione...

Il giorno mar 8 mar 2022 alle ore 20:48 Massimiliano della Rovere <
massimiliano.dellarovere a gmail.com> ha scritto:

> Salve a tutti!
> Sto cercando in python 3.10 di creare una typing.NamedTuple (*typing.*
> non *collections.*) in questo modo:
>
> Links = typing.NamedTuple(
>     "Links",
>     {
>         cardinal_point.value: int
>         for cardinal_point in CARDINAL_POINTS_6_NS
>     })
> e fin qui funziona tutto.
>
> Non riesco a capire se e come ci sia modo di inserire anche i parametri di
> default.
>
> Non posso usare la versione:
> class Links(typing.NamedTuple):
>     colonna: int = valore
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20220308/2f79f946/attachment.html>


Maggiori informazioni sulla lista Python