Ответ 1
PEP 8 рекомендует против этой практики. Я также рекомендую против него, потому что это хрупкий стиль программирования (не устойчивый к незначительным модификациям кода):
Вместо этого рассмотрите использование декоратора класса functools.total_ordering, чтобы выполнить работу:
@total_ordering
class Student:
def __eq__(self, other):
return ((self.lastname.lower(), self.firstname.lower()) ==
(other.lastname.lower(), other.firstname.lower()))
def __lt__(self, other):
return ((self.lastname.lower(), self.firstname.lower()) <
(other.lastname.lower(), other.firstname.lower()))