Jakoś w poniższej klasie węzła zmienna wordList i adjacencyList jest współdzielona między wszystkimi instancjami węzła.Konstruktor języka Python i wartość domyślna
>>> 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']
Czy jest jakiś sposób mogę nadal używać wartości domyślnej (pusta lista w tym przypadku) dla parametrów konstruktora, ale aby dostać zarówno A i B mają własne wordlist i adjacencyList zmienne?
Używam Pythona 3.1.2.
możliwe duplikat [W jaki sposób należy zadeklarować wartości domyślne dla zmiennych instancji w Pythonie?] (Http://stackoverflow.com/questions/2681243/how-should-i-declare-default-values-for- instance-variables-in-python) –
Możliwy duplikat ["Least Astonishment" w języku Python: w którym zakresie znajduje się argument Mutable Default?] (http://stackoverflow.com/questions/1132941/least-astonishment-in-python -to-scope-is-the-mutable-default-argument-in) –