python列表作为默认参数的问题

python列表作为默认参数的问题,第1张

概述# coding=utf-8def foo(a, x=[]):    x.append(a)    return xprint(foo(1))print(foo(2))# 预想输出# [1]# [2]# 实际输出# [1]# [1, 2]究其原因,原来是这个函数的默认值只在函数被加载时调用一次,之后若不传值则一直都会用加载函数时候设置的值,此
# Coding=utf-8def foo(a, x=[]):    x.append(a)    return xprint(foo(1))print(foo(2))# 预想输出# [1]# [2]# 实际输出# [1]# [1, 2]究其原因,原来是这个函数的默认值只在函数被加载时调用一次,之后若不传值则一直都会用加载函数时候设置的值,此值不会再改变。若这个默认值我们设置的是个常量并不会对我们对程序有什么影响,若是个变量,那可就要小心啦!是个变量最后还是当成了常量使用。那么为了实现符合我们预期对要求,我们就只能像下面这样使用啦。大家都能想到,也就是在函数内部为变量赋值。正确示例:# 正确示例def foo1(a, x=None):    if x is None:        x = []    x.append(a)    return xprint(foo1(1))print(foo1(2))# [1]# [2]
总结

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

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存