¿Por qué asignarse a uno mismo no funciona y cómo solucionar el problema?
Tengo una clase (lista dedict
s) y quiero que se ordene:
class Table(list):
…
def sort (self, in_col_name):
self = Table(sorted(self, key=lambda x: x[in_col_name]))
pero no funciona en absoluto. ¿Por qué? ¿Cómo evitarlo? Excepto por su clasificación externa, como:
new_table = Table(sorted(old_table, key=lambda x: x['col_name'])
¿No es posible manipular el objeto en sí? Es más significativo tener:
class Table(list):
pass
que:
class Table(object):
l = []
…
def sort (self, in_col_name):
self.l = sorted(self.l, key=lambda x: x[in_col_name])
Lo cual, creo, funciona. Y en general, no está ahí.alguna En Python, ¿de qué manera se puede cambiar un objeto (no solo una variable de instancia)?