In Python3, lo functools.total_ordering decorator consente di sovraccaricare solo __lt__
e __eq__
per ottenere tutti e 6 gli operatori di confronto.python total_ordering: perché __lt__ e __eq__ invece di __le__?
Non capisco il motivo per cui si deve scrivere due operatori quando uno sarebbe sufficiente, vale a dire __le__
o __ge__
, e tutti gli altri sarebbe definito di conseguenza:
a < b <=> not (b <= a)
a > b <=> not (a <= b)
a == b <=> (a <= b) and (b <= a)
a != b <=> (a <= b) xor (b <= a)
è che solo perché operatore XOR non lo fa esiste in modo nativo?
'xor' esiste in modo nativo. –
@MartijnPieters solo bit per bit xor, non è vero? –