Nick Coghlan <ncogh...@gmail.com> added the comment:

For the ordering operators, my only question would be whether or not I can rely 
on them to act like functools.total_ordering: if I supply __eq__ and one of the 
ordering operators (e.g. __lt__), will dataclasses make sure the other three 
ordering operators are consistent with those base methods? Or will it bypass 
them and act directly on the underlying fields?

My suggestion would be to say that if any of __lt__, __le__, __gt__ or __ge__ 
are defined, then data classes will implicitly generate the other methods based 
on functools.total_ordering semantics, and will only reference the underlying 
fields directly if *none* of them are defined. Otherwise I can see folks 
defining a single method like "__lt__", and being surprised when they end up 
with inconsistent comparison behaviour.

----------
nosy: +ncoghlan

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32513>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to