我有一个类(字典列表),我希望它能够自行排序:
class Table(list):
…
def sort (self, in_col_name):
self = Table(sorted(self, key=lambda x: x[in_col_name]))
但是它根本不起作用。为什么?如何避免这种情况?除了外部排序,例如:
new_table = Table(sorted(old_table, key=lambda x: x['col_name'])
“难道不能直接操作对象本身吗?下面这种方式更有意义:”
class Table(list):
pass
比:
class Table(object):
l = []
…
def sort (self, in_col_name):
self.l = sorted(self.l, key=lambda x: x[in_col_name])
我认为这个代码可以运行。 而且,总的来说,在Python中难道没有任何一种方法让一个对象改变自己(不仅仅是实例变量)吗?