我正在尝试根据条目的 id 对条目列表进行排序。
我试过这段代码,但没有用:
entries.sort(cmp=None, key=Entry.id, reverse=False)
列表中的对象是具有 id 的条目。
这是我得到的错误:
TypeError:“InstrumentedAttribute”对象不可调用
有任何想法吗?
我正在尝试根据条目的 id 对条目列表进行排序。
我试过这段代码,但没有用:
entries.sort(cmp=None, key=Entry.id, reverse=False)
列表中的对象是具有 id 的条目。
这是我得到的错误:
TypeError:“InstrumentedAttribute”对象不可调用
有任何想法吗?
key
必须是一个函数,它接受一个列表条目并返回一个用于比较的值。
作为替代lambda
,使用operator.attrgetter
:
entries.sort(key=attrgetter('id'))
正如错误告诉您的那样, Key 需要是一个函数,或者更准确地说,是一个可调用对象。
entries.sort(cmp=None, key=(lambda x:x.id), reverse=False)