Python构造函数和默认值

功率:

不知何故,在下面的Node类中,wordListand adjacencyList变量在Node的所有实例之间共享。

>>> 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']

有什么办法可以让我继续使用构造函数参数的默认值(在这种情况下为空列表),但要同时获取它们ab拥有其自身的变量wordList以及adjacencyList变量?

我正在使用python 3.1.2。

迈克尔·J·理发师:

可变的默认参数通常不会执行您想要的操作。相反,请尝试以下操作:

class Node:
     def __init__(self, wordList=None, adjacencyList=None):
        if wordList is None:
            self.wordList = []
        else:
             self.wordList = wordList 
        if adjacencyList is None:
            self.adjacencyList = []
        else:
             self.adjacencyList = adjacencyList 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

默认值struct和构造函数顺序

结合std :: vector默认值和Fill构造函数

Kotlin-构造函数默认值和构造函数重载

Flutter 构造函数默认值

函数python的默认值

类构造函数和函数参数中命名参数的默认值的“:”和“=”有什么区别

在构造函数 JavaScript 中分配默认值

构造函数链接不使用类成员的默认值?

类构造函数中options对象的默认值

Scala中辅助构造函数中的枚举的默认值

C ++构造函数中参数的默认值

Flutter 在构造函数中定义 DateTime 的默认值

Flutter Stateful Widget集构造函数默认值

使用mysqli构造函数的默认值失败

在 C++ struct 中,构造函数中的默认值和默认参数有什么区别?

具有默认值的单参数构造函数与默认构造函数相同吗?

不能使用服务容器中的服务和默认值实例化SwaggerGenerator类型的构造函数

无法使用服务容器中的服务和默认值实例化“ MyProject.Response”类型的构造函数

我们真的需要避免Kotlin中的Fragments和Activites具有默认值的构造函数吗?

从任何函数中提取函数参数和默认值

这会更改默认和非默认构造函数中的值

Dart Flutter:在为类构造函数设置默认值时,可选参数的默认值必须恒定

如何为XmlElement指定一个不同于其构造函数中默认值的默认值?

具有类成员默认值的C ++ 11默认构造函数行为

如何添加默认构造函数并使它调用另一个构造函数并使用默认值?

无法导出默认值和其他函数

在Oracle函数的默认值

函数中的默认值

在PHP的构造函数中使用函数作为参数的默认值