[Python-ideas] A namedtuple literal.
random832 at fastmail.us
random832 at fastmail.us
Thu Apr 3 15:32:03 CEST 2014
On Wed, Apr 2, 2014, at 17:27, Steven D'Aprano wrote:
> But Eric's suggestion skips creating a distinct class and gives you an
> instance straight away. So what class will the instance belong to? There
> are three obvious possibilities, and they're all unfortunate:
>
>
> (1) every instance is a singleton of a unique class;
>
> (2) there is a single NamedTuple class that every instance belongs to;
>
> (3) the namedtuple literal has to cache the keys it has seen, and return
> the same class when given the same keys in the same order.
(4) Step 3 is done in the compiler, and therefore only namedtuple
literals in the same module (or same freshly eval/exec'd string) will
have the same type.
I think this is what C# does, though you're not supposed to compare them
by type, work with their types much, or really store the objects in a
non-ephemeral way anyway.
Really, it'd almost be nicer to have a _single_ "bag of attributes" type
[i.e. class c: pass], and literals for it.
More information about the Python-ideas
mailing list