码迷,mamicode.com
首页 > 编程语言 > 详细

python之函数参数问题(参数为可变对象)

时间:2018-07-08 00:30:20      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:lin   pytho   span   lxc   默认参数   src   suv   技术   aar   

 

今天看到一段代码,其中函数入参有一个参数为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)

 

大家可以试一下

python之函数参数问题(参数为可变对象)

标签:lin   pytho   span   lxc   默认参数   src   suv   技术   aar   

原文地址:https://www.cnblogs.com/watertaro/p/9278846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!