Python构造函数和默认值[重复]

这个问题在这里已经有答案了
&引用;“最不惊讶”;和可变默认参数

(31个答案)

三年前关闭的

不知何故,在下面的节点类中,wordListadjacencyList变量在节点的所有实例之间共享

&gt&燃气轮机&燃气轮机;类节点:
...     def uuu init uuuu(self,wordList=[],adjacencyList=[]):
...         self.wordList=wordList
...         self.adjacencyList=adjacencyList
... 
&燃气轮机&燃气轮机&燃气轮机;a=节点()
&燃气轮机&燃气轮机&燃气轮机;b=节点()
&燃气轮机&燃气轮机&燃气轮机;a、 附加(“哈哈哈”)
&燃气轮机&燃气轮机&燃气轮机;b、 词表
[“哈哈哈”]
&燃气轮机&燃气轮机&燃气轮机;b、 adjacencyList.append(“hoho”)
&燃气轮机&燃气轮机&燃气轮机;a、 邻接柱状图
[hoho']

是否有任何方法可以继续使用构造函数参数的默认值(本例中为空列表),但使ab都有自己的wordListadjacencyList变量

我正在使用python 3.1.2

可变的默认参数通常不能满足您的需要。相反,请尝试以下方法:

类节点:
定义初始化(self,wordList=None,adjacencyList=None):
如果wordList为None:
self.wordList=[]
其他:
self.wordList=wordList
如果“邻接列表”为“无”:
self.adjacencyList=[]
其他:
self.adjacencyList=adjacencyList

发表评论