Duda python y clases

Veamos, a veces soy algo paquete programando y no sé si me falta algo.

Tengo la clase Map, que es una lista de objetos de la clase Wave, que a su vez es una lista de objetos de la clase Mob. El problema viene cuando una acción de la clase Mob tiene como consecuencia la modificación de un valor de la clase Map. Lo que he hecho ha sido pasar, desde la clase Map, self como variable a las otras clases para poder usar sus funciones. No sé si es correcto o hay alguna forma mejor. Funcionar, funciona, eso sí.

class Mob(self, map, etc):
  self.map = map
  ...
  self.map.foo()
  ...


class Wave(self, map, etc):
  self.map = map
  ...
  self.mobs.add(Mob(self.map, etc))
  ...


class Map(self, etc):
  ...
  self.waves.append(Wave(self, etc))
  ...
  def foo():
    print "Hola EOL"
  ...


No sé si me he explicado bien. En fin, que llevo un rato buscando y no he encontrado nada mejor.
Es correcto.

De todas formas, en python casi siempre hay muchas manera de hacer una misma cosa.

Un saludo.
Nel-chan, no solo es correcto, sino que es la manera de hacerlo.
feler escribió:Es correcto.

De todas formas, en python casi siempre hay muchas manera de hacer una misma cosa.

Un saludo.

feler, en python y en cualquier lenguaje de programación :P :P :P La diferencia es que Python intenta simplificar todas las maneras posibles en una sola.

Como bien escribió Tim Peters en su zen de python:
13. Debería haber una -- y preferiblemente sólo una -- manera obvia de hacerlo.


Un saludo.
3 respuestas