如何在 __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
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