python趣味 ——奇葩的全局形参

2018-06-18 00:00:17来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在c++,c#,js等语言中:

函数定义(参数)

    函数体:参数修改

 

这里的参数修改都是仅限于这个函数体内的

 

python不知道是不是bug,我们这样写:

def test(a=[]):
    a.append(1);print(a)

 

然后多次执行test函数:
>>> test()
[1]
>>> test()
[1, 1]
>>> test()
[1, 1, 1]
>>> test()
[1, 1, 1, 1]

 

你会发现输出的值在变,这是个有趣的坑——形参在变。

>>> test([2])

这并不会影响这个全局形参的值,再次调用默认参数的test:

>>> test()

[1, 1, 1, 1, 1]

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO

下一篇:sklearn交叉验证-【老鱼学sklearn】