[Python-ideas] Add recordlcass to collections module
Steven D'Aprano
steve at pearwood.info
Sun Sep 2 19:49:42 EDT 2018
On Sun, Sep 02, 2018 at 10:56:50PM +0200, Martin Bammer wrote:
> Compared to dataclass:
> dataclass wins only on the topic object size. When it comes to speed and
> functionality (indexing, sorting) dataclass would be my last choice.
I see no sign that recordclass supports sorting. (But I admit that I
haven't tried it.)
What would it mean to sort a recordclass?
Person = recordclass('Person', 'personalname familyname address')
fred = Person("Fred", "Anderson", "123 Main Street")
fred.sort()
print(fred)
=> output:
Person(personalname='123 Main Street', familyname='Anderson', address='Fred')
[...]
> Adding new items:
> This is not possible with namedtuple and also not possible with
> recordclass. I see no reason why a namedlist should support this,
If you want to change the name and call it a "list", then it needs to
support the same things that lists support.
> because with these object types you define new object types and these
> types should not change.
Sorry, I don't understand that. How do you get "no insertions" from
"can't change the type"? A list remains a list when you insert into it.
In case it isn't clear, I think there is zero justification for renaming
recordclass to namedlist. I don't think "named list" makes sense as a
concept, and recordclass surely doesn't implement a list-like interface.
As for the idea of adding a recordclass or mutable-namedtuple or
whatever to the stdlib, the idea seems reasonable but its not clear to
me that dataclass wouldn't be suitable.
--
Steve
More information about the Python-ideas
mailing list