Python参数的默认值进阶250216
- 游戏开发
- 2025-09-09 19:30:02

如果函数参数的默认值是可变类型,就需要注意指向问题 def func(a1, a2 = [1, 2]): a2.append(666) print(a1, a2) return func(100)# 100 [1, 2, 666] func(200)# 200 [1, 2, 666, 666] func(99, [77, 88]) func(300)# 300 [1, 2, 666, 666, 666] 编译到到函数时,会提前为默认值安排了内存第6行函数调用中,a2会指向已经分配的内存中的列表地址 函数调用的第2行,会为这个地址中的列表添加元素666这样在第7行再调用函数时,a2的值已经变成[1, 2, 666]不同次调用函数时,默认值不会生成新的,而是会在编译过程中已经生成好的第8行,就不再使用默认值
Python参数的默认值进阶250216由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python参数的默认值进阶250216”