Thanks for the PEP! :) I like the naming. ;) Though, I would like to add to Michel's argument in favor of a base class. On 11.09.2017 08:38, Michel Desmoulin wrote: >>> - I read Guido talking about some base class as alternative to the >>> generator version, but don't see it in the PEP. Is it still considered ? >> I'm going to put some words in explaining why I don't want to use base >> classes (I don't think it buys you anything). Do you have a reason for >> preferring base classes? > Not preferring, but having it as an alternative. Mainly for 2 reasons: > > 1 - data classes allow one to type in classes very quickly, let's > harvest the benefit from that. > > Typing a decorator in a shell is much less comfortable than using > inheritance. Same thing about IDE: all current ones have snippet with > auto-switch to the class parents on tab. > > All in all, if you are doing exploratory programming, and thus > disposable code, which data classes are fantastic for, inheritance will > keep you in the flow. > > 2 - it will help sell the data classes > > I train a lot of people to Python each year. I never have to explain > classes to people with any kind of programming background. I _always_ > have to explain decorators. > > People are not used to it, and even kind fear it for quite some time. > > Inheritance however, is familiar, and will not only push people to use > data classes more, but also will let them do less mistakes: they know > the danger of parent ordering, but not the ones of decorators ordering. 3) - the order of base classes can arranged appropriately In our day-to-day work, we use mixins and cooperative multiple inheritance a lot. So, having dataclasses as a base class or a mixin would be great! :) Combined with 1) and 2), I am much in favor of having dataclasses as base class/mixin than as a decorator. What are the benefits of the decorator? Maybe both is possible? Cheers, Sven PS: @Michel good observation 1). Typing decorators in shell is annoying.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4