python中 列表append方法和"+"在定义函数时为什么表现的不一样,为什么?
题目描述
列表append方法和"+"在定义函数时为什么表现的不一样,为什么?
题目来源及自己的思路
在看入门视频时看到说定义函数关于默认参数最好用不可变对象的问题,然后举例,
def zxc(a, b=[]): b.append(a)
print(b)
zxc(1) # [1]
zxc(2) # [1, 2]
这个理解就是append方法改变了b然后再调用就会把新的值作为默认参数传递给下一次调用函数.
然后我试着用"+" 来改变b,结果却不一样了
相关代码
""" 当b=[]=================注意这两个函数b.append(a)和b=b+[a]的区别 为什么"""def zxc(a, b=[]):
b.append(a)
print(b)
zxc(1) # [1]
zxc(2) # [1, 2]
def asd(a, b=[]):
b = [a] + b
print(b)
asd(1) # [1]
asd(2) # [2]
""" 当b=[]==================注意这两个函数b.append(a)和b=b+[a]的区别 为什么"""
你期待的结果是什么?实际看到的错误信息又是什么?
回答:
只要出现的 b =
,b
就不再是原来的 b
。
以上是 python中 列表append方法和"+"在定义函数时为什么表现的不一样,为什么? 的全部内容, 来源链接: utcz.com/p/938621.html