Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?
当我们在使用Python内置函数sort/sorted对一个自定义类列表进行排序时,如果这个自定义类没有定义__lt__方法(即小于运算符重载方法),那么会抛出TypeError异常。
这是因为sort/sorted默认按照对象的小于运算符进行比较。
下面我们来演示一下这个问题:
class Person:
def __init__(self, name, age):
self.name