如何在 __init__ [duplicate] 中使用默认参数创建单独的类实例

How to create separate class instance with default arguments in __init__ [duplicate]

提问人:Vikram 提问时间:4/25/2022 最后编辑:Vikram 更新时间:4/25/2022 访问量:45

问:

类定义:

class tr():
  def __init__(self,l=[]):
    self.l = l
  def added(self):
    self.l.append(1)
colt1 = tr()
colt1.added()
print(colt1.l)

输出是 [1] 在上述代码之后执行以下代码

colt2 = tr()
colt2.added()
print(colt2.l)

输出为 [1, 1]

我希望第二段的输出也是 [1],该类从 init 函数获取数据成员,并且还有一个默认参数。 那么我应该如何更改代码以获得此输出呢?

python 函数 参数传递

评论

1赞 Dennis 4/25/2022
另请参阅 stackoverflow.com/questions/1132941/...
0赞 Vikram 4/25/2022
哦!这个页面已经回答了这个问题,但是我找不到它,应该是因为花哨的标题!!

答:

1赞 Dennis 4/25/2022 #1

标准的做法是为您的方法准备这种东西:__init__

    def __init__(self, l=None):
        if l is None:
            l = []
        self.l = l

您可以查看此常见问题解答条目:https://docs.python.org/3/faq/programming.html#why-are-default-values-shared-between-objects