Python 中的参数传递模式是共享传参
def add(a, b):
a += b
return a
x = 1
y = 2
//调用加法
add(a, b)
print(a)//此时输出的值为1
如果可变对象作为默认值的话,会导致一些问题
class List:
def __init__(self, list = []):
self.list = list
a = List()
b = List()
a.list// -> []
b.list// -> []
a.list.append(1)
a.list// -> [1]
b.list// -> [1]
//此时b 跟 a 引用了同一个列表
建议不要使用可变类型作为参数的默认值
如何解决上面的问题?
class List:
def __init(self, list = None):
if list is None:
self.list = []
else:
self.list = list
网友评论