¿Por qué asignarse a uno mismo no funciona y cómo solucionar el problema?

Tengo una clase (lista dedicts) 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)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta