|
发表于 2021-2-14 23:30:19
|
显示全部楼层
本楼为最佳答案
函数的参数是不可哈希的数据类型
定义
- def func(x=[],y=[6,7]):
- x.append(8)
- y.append(8)
- return(x+y)
复制代码
每次不加参数调用函数以后,默认参数都会改变
调用一次func() 以后相当于默认 参数append(8)
第二次调用时相当于
- def func(x=[8],y=[6,7,8]):
- x.append(8)
- y.append(8)
- return(x+y)
复制代码
如果带参数使用函数,则不会改变函数默认参数
- def func(x=[],y=[6,7]):
- x.append(8)
- y.append(8)
- return(x+y)
- a,b=[1,2],[3,4]
- t = func(x=a,y=b) #带参数,默认参数不会发生改变,调用函数正常
- #t = func(y=b)
- print(func(),end=";")
复制代码
两个t
第一个t使用了默认参数y
第二个t使用了默认参数x
则再次运行时默认参数为x=[8],y=[6,7,8]
最终得到结果
[8,8,6,7,8,8]; |
|