形参函数python 默认形参的 一个漏洞 形参函数

在写这篇文章之前,xxx已经写过了几篇关于改形参函数主题的文章,想要解了的朋友可以去翻一下之前的文章

    啥也不说了,先上码代

 1 global num
 2 num = 1
 3 
 4 def test_a(a={}):
 5     global num
 6     a[num] = num
 7     num += 1
 8     print a
 9 
10 def test_b(a={}):
11     global num
12     a[num] = num
13     num += 1
14     print a
15 
16 test_a()
17 test_a()

输出结果如下:

    {1: 1}

    {1: 1, 2: 2}

    python前目还是停留在中等水平,对其中的一些现实制机还不解了。

    我常在python函数里应用默许形参。昨天学长指出了我这个漏洞。

    还真是这样,除了dict,list也会有这个问题。

    一同函数名 的默许形参是全局静态的。够恐怖吧。

    想想看,最单简的解决办法还是。在调用这些函数的地方。test_a({}) 取代test_a() 取消 默许形参。

    还有就是 制止函数 部内对 形参的任何改修 ,相当于c里的const,python 似乎没有这方面的持支

    不知大家有什么这方面的设法。

 

文章结束给大家分享下程序员的一些笑话语录: 那是习惯决定的,一直保持一个习惯是不好的!IE6的用户不习惯多标签,但是最终肯定还是得转到多标签的浏览器。历史(软件UI)的进步(改善)不是以个人意志(习惯)为转移的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值