Error de inicialización del objeto Python. ¿O estoy malentendido cómo funcionan los objetos?

  1 import sys
  2 
  3 class dummy(object):
  4     def __init__(self, val):
  5         self.val = val
  6 
  7 class myobj(object):
  8     def __init__(self, resources):
  9         self._resources = resources
 10 
 11 class ext(myobj):
 12     def __init__(self, resources=[]):
 13         #myobj.__init__(self, resources)
 14         self._resources = resources
 15 
 16 one = ext()
 17 one._resources.append(1)
 18 two = ext()
 19 
 20 print one._resources
 21 print two._resources
 22 
 23 sys.exit(0)

Esto imprimirá la referencia al objeto asignado aone._resources para ambosone ytwo objetos. Pensaría quetwo sería una matriz vacía, ya que se establece claramente como tal si no se define al crear el objeto. Sin comentariosmyobj.__init__(self, resources) hace lo mismo Utilizandosuper(ext, self).__init__(resources) También hace lo mismo.

La única forma en que puedo hacerlo funcionar es si uso lo siguiente:

two = ext(dummy(2))

No debería tener que establecer manualmente el valor predeterminado al crear el objeto para que esto funcione. O tal vez lo hago. ¿Alguna idea?

Intenté esto usando Python 2.5 y 2.6.

Respuestas a la pregunta(5)

Su respuesta a la pregunta