函数默认参数的坑

函数默认参数的坑,第1张

概述def extendList(val,list=[]): list.append(val) return listlist1 = extendList(10)list2 = extendList(123,[])list3 = extendList('a')print('list1=%s'%list1)print('list2=%s'%list2)print('lis
def extendList(val,List=[]):    List.append(val)    return ListList1 = extendList(10)List2 = extendList(123,[])List3 = extendList('a')print('List1=%s'%List1)print('List2=%s'%List2)print('List3=%s'%List3)#结果List1=[10,'a']List2=[123]List3=[10,'a']#默认参数定义的是可变数据类型时有坑。#默认参数定义成可变数据类型后,如果调用函数时使用的是默认参数,那么使用的都是同一个内存空间,如果在某一次调用中进行了修改的话,那么以后再次调用此默认参数时参数已经被改变了。#如果调用的时候传入了参数,那么就开辟新的内存空间,做的更改也是在新的空间中更改的,和默认参数的内存空间没有关系。#默认参数一定要是不可变参数
def extendList(val,List=[]):    List.append(val)    return Listprint('List1=%s'% extendList(10))print('List2=%s'% extendList(123,[]))print('List3=%s'% extendList('a'))#结果List1=[10]List2=[123]List3=[10,'a']#和上面的是同种类型的,只不过上一种是全部执行完后才打印,这种情况是执行一次打印一次
总结

以上是内存溢出为你收集整理的函数默认参数的坑全部内容,希望文章能够帮你解决函数默认参数的坑所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存