Вы также можете создать подкласс tuple
и создать свой собственный класс кортежей с соответствующим образом реализованными методами __lt__
и __gt__
:
class MyTuple(tuple):
def __lt__(self, other):
for s, o in zip(self, other):
if s == o:
continue
if s is None:
return False
if o is None:
return True
return super().__lt__(other)
def __gt__(self, other):
return not self.__lt__(other)
a = MyTuple([None, 4])
b = MyTuple(['pencil', 12])
print(a < b) # False
print(a > b) # True