- def f(val=[]):
- val.append(1)
- return val
- print(f(), f())
复制代码 输出:
这是因为Python函数默认参数如果是可变对象始终是同一个,修改一个其它也会跟着变。所以不建议默认参数用可变对象,防止出现意外的值。
至于为什么不是[1],[1,1],是因为两个f()实行完了再print的,此时两个f()返回的都是同一个列表。如果分成两个print才是[1],[1,1]:
- def f(val=[]):
- val.append(1)
- return val
- print(f())
- print(f())
复制代码 输出:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |