首页 > 编程语言 > 详细

Python(55)_默认参数的陷阱

时间:2019-01-09 00:21:30      阅读:208      评论:0      收藏:0      [点我收藏+]
#-*-coding:utf-8-*-
‘‘‘
函数复习
‘‘‘
def f():
    return bowen
print(2+3) # 事实上python中会调用内部的函数,相当于add()
print(f())

def wahaha(*args):
    print(args)
wahaha(1,2,3)
l = [1,2,3]
wahaha(*l)

‘‘‘
默认参数的陷阱
  如果默认参数的值是一个可变数据类型,那么每一次调用的时候,不传值就公用这个数据类型的资源
  简单的说,就是不传值的情况下,始终操作的都是同一个字典或者列表
‘‘‘
def qqxing(l=[]):# 默认参数
    l.append(1)
    print(l)

qqxing()  # [1]
qqxing()  # [1, 1]
qqxing([]) # [1]
qqxing()  # [1, 1, 1] 用的是第二个调用时的列表


def ee(k,l={}):
    l[k] = v
    print(l)

ee(1)  # {1: ‘v‘}
ee(2)  # {1: ‘v‘, 2: ‘v‘}
ee(3)  # {1: ‘v‘, 2: ‘v‘, 3: ‘v‘}

技术分享图片

 

Python(55)_默认参数的陷阱

原文:https://www.cnblogs.com/sunnybowen/p/10242058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!