您的位置:首页 > 编程语言 > Python开发

python面试题,函数中的形参为可变数据类型问题(初级小白很坑的一道题)

2019-08-13 12:22 295 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/cute_boy_/article/details/99419939

求下面代码的输出结果

def fun(val,list=[]):
list.append(val)
# print(id(list))
return list

data1 = fun(10)
data2 = fun(123,[])
data3 = fun('a')

print(data1)
print(data2)
print(data3)


解释:当函数中的变量被默认为一个可变数据类型时,如果在调用的时侯不为其传参,则这个参数的地址将不会改变,如果为其传入参数则地址会发生改变,所以在最后一次调用的时候没有传入对应的参数则列表的数据依然是[10],故第三次调用后会发生data1中数据会发生变化的现象。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: