Python中自定义类未定义__lt__方法使用sort/sorted排序会怎么处理?
当我们在使用Python内置函数sort/sorted对一个自定义类列表进行排序时,如果这个自定义类没有定义__lt__方法(即小于运算符重载方法),那么会抛出TypeError异常。
这是因为sort/sorted默认按照对象的小于运算符进行比较。
下面我们来演示一下这个问题:
class Person:
def __init__(self, name, age):
self.name = name
self
当使用Python内置的sort/sorted对未定义__lt__方法的自定义类列表排序时,会抛出TypeError。解决方法是在类中定义__lt__,根据特定属性进行比较。这样可以根据需求实现自定义排序规则。
订阅专栏 解锁全文
86

被折叠的 条评论
为什么被折叠?



