zoukankan      html  css  js  c++  java
  • python之函数参数问题(参数为可变对象)

    今天看到一段代码,其中函数入参有一个参数为list,类似如下:

    def linux_monitor(pid=0,pidlist = []):
        pidlist.append(pid)
    

    通过测试发现是有问题的,在其中加入print和调用即可发现(使用默认参数值调用俩次):

    def linux_monitor(pid=0,pidlist = []):
        pidlist.append(pid)
        print(pid)
        print(pidlist)
    
    linux_monitor()
    linux_monitor()
    

    结果如下:

    第二次调用的时候,pidlist并不是空的

    所以对于可变参数,特别需要注意,如列表等都可能产生这样的问题

    我们可以对代码做如下处理即可正常使用:

    def linux_monitor(pid=0,pidlist = None):
      if pidlist == None:
        pidlist = []
      pidlist.append(pid)
      print(pid)
      print(pidlist)

    大家可以试一下

    关于本篇内容如有转载请注明出处;技术内容的探讨、纠错,请发邮件到70907583@qq.com
  • 相关阅读:
    C++PRIMER 阅读笔记 第三章
    一个for循环打印二维数组
    递归实现数组求和
    strlen 与 sizeof
    call,apply,bind,this
    js 原型继承
    vue 动画
    vuex学习心得
    vue+elementui dropdown 下拉菜单绑定方法
    vue 生命周期一点学习
  • 原文地址:https://www.cnblogs.com/watertaro/p/9278846.html
Copyright © 2011-2022 走看看