Как-то в классе Node ниже переменная wordList и adjacencyList разделяется между всеми экземплярами узла.Конструктор Python и значение по умолчанию
>>> 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']
Есть ли способ, что я могу продолжать использовать значение по умолчанию (пустой список в данном случае) для параметров конструктора, но, чтобы получить как а и Ь, чтобы иметь свои собственные WordList и переменный список смежных вершин?
Я использую python 3.1.2.
возможно дубликат [Как я должен объявить значения по умолчанию для переменных экземпляра в Python?] (Http://stackoverflow.com/questions/2681243/how-should-i-declare-default-values-for- instance-variables-in-python) –
Возможный дубликат [«Наименьшее удивление» в Python: какая область действия является аргументом Mutable Default Argument в?] (http://stackoverflow.com/questions/1132941/least-astonishment-in-python -which-scope-is-the-mutable-default-argument-in) –