如何在 __init__ 中使用默认参数创建单独的 class 实例

How to create separate class instance with default arguments in __init__

class定义:

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],class 从 获取数据成员init 函数并且还有一个默认参数。 那么我应该如何更改代码以获得此输出?

标准的做法是为您的 __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