我有一个类(dict
s 列表),我希望它自行排序:
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 中没有任何方法可以让对象能够改变自身(不仅仅是实例变量)吗?