gpt4 book ai didi

Python,可变对象作为默认参数,有什么办法解决吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:21 25 4
gpt4 key购买 nike

class A:
def __init__(self, n=[0]):
self.data = n

a = A()
print a.data[0] #print 0
a.data[0] +=1

b = A()
print a.data[0] #print 1, desired output is 0

在上面的例子中,有没有办法在 __init__() class A 中为可变对象(例如列表或类)提供默认参数,但是 b 不受操作a的影响吗?

最佳答案

你可以试试这个:

class A:
def __init__(self, n=None):
if n is None:
n = [0]
self.data = n

这避免了您在这里面临的最大问题,即您的类型“A”的每个对象的列表都是相同的。

关于Python,可变对象作为默认参数,有什么办法解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7502238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com