どういうわけか、下のNodeクラスでは、wordListとadjacencyList変数がNodeのすべてのインスタンス間で共有されています。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にし、隣接リストの変数を持つようにAとBの両方を取得する方法はありますか?
私はpython 3.1.2を使用しています。
の可能重複〔どのように私はPythonでインスタンス変数のデフォルト値を宣言する必要がありますか?](http://stackoverflow.com/questions/2681243/how-should-i-declare-default-values-for- –
Pythonの["Least Astonishment"の可能な複製:どのスコープが変更可能なデフォルト引数ですか?](http://stackoverflow.com/questions/1132941/least-astonishment-in-python -which-scope-is-the-mutable-default-argument-in) –