De alguna manera, en la clase Nodo a continuación, las variables wordList y adjacencyList se comparten entre todas las instancias de Node.Constructor Python y valor predeterminado
>>> class Node:
... def __init__(self, wordList = [], adjacencyList = []):
... self.wordList = wordList
... self.adjacencyList = adjacencyList
...
>>> a = Node()
>>> b = Node()
>>> a.wordList.append("hahaha")
>>> b.wordList
['hahaha']
>>> b.adjacencyList.append("hoho")
>>> a.adjacencyList
['hoho']
¿Hay alguna manera de que pueda seguir usando el valor por defecto (lista vacía en este caso) para los parámetros del constructor pero para llegar a y b para tener sus propias variables lista de palabras y adjacencyList?
Estoy usando python 3.1.2.
posible duplicado de [Cómo debo declarar valores por defecto para las variables de instancia en Python?] (Http://stackoverflow.com/questions/2681243/how-should-i-declare-default-values-for- instance-variables-in-python) –
Posible duplicado de ["Menos asombro" en Python: ¿cuál ámbito es el argumento predeterminado mutable en?] (http://stackoverflow.com/questions/1132941/least-astonishment-in-python -which-scope-is-the-mutable-default-argument-in) –