On Thu, Aug 27, 2020 at 1:45 PM David Mertz <[email protected]> wrote:
> On Thu, Aug 27, 2020, 1:35 PM Ricky Teachey
>
>> Conceptually, an "immutable collection" serves a different purpose than
>>> "a collection of axes", even if they work then same under the hood.
>>>
>>
>> What about something like this:
>>
>> class Name(NamedTuple):
>> first: str
>> last: str
>>
>> d = NamedKeyDict(Named)
>> d[first='david', last='mertz'] = 1_000_000 # dollars
>>
>
> Sure, maybe. But this is probably better as a dataclass nowadays.
> Actually, I'm not sure what NamedKeyDict is meant to do in your example.
>
Just intended to be a dictionary that uses a named tuple type (or other
type with the same named attributes available) as the keys. You initialize
it by telling it what the type is, similar to defaultdict:
dd = defaultdict(list)
...except the type is a NT-like class:
class MyNamedTuple(NamedTuple):
spam: str
eggs: str
nd = NamedKeyDict(MyNamedTuple)
Now if you add a key using named arguments, it will call MyNamedTuple and
supply them as kwargs:
nd[spam="foo", eggs="bar"] = "baz"
...results in:
>>> nd
{MyNamedTuple(spam='foo', eggs='bar'): 'baz'}
---
Ricky.
"I've never met a Kentucky man who wasn't either thinking about going home
or actually going home." - Happy Chandler
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/JL5I2WH5S4VLJ3BX5MHFC4QIG7FPCB7O/
Code of Conduct: http://python.org/psf/codeofconduct/