1

エントリのIDに基づいてエントリのリストを並べ替えようとしています。

このコードを試しましたが、機能しませんでした。

entries.sort(cmp=None, key=Entry.id, reverse=False)

リスト内のオブジェクトは、IDを持つエントリです。

これは私が得るエラーです:

TypeError:'InstrumentedAttribute'オブジェクトは呼び出せません

何か案は?

4

2 に答える 2

7

keyリストエントリを受け取り、比較に使用される値を返す関数でなければなりません。

の代わりにlambda、次を使用しますoperator.attrgetter

entries.sort(key=attrgetter('id'))
于 2012-12-28T15:49:46.367 に答える
3

エラーが示したように、Keyは関数、より正確には呼び出し可能なオブジェクトである必要があります。

entries.sort(cmp=None, key=(lambda x:x.id), reverse=False)
于 2012-12-28T15:44:51.703 に答える