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

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

时间:2019-01-09 00:32:23      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:bsp   return   函数   数据类型   app   span   .com   code   pen   

#-*-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)_默认参数的陷阱

标签:bsp   return   函数   数据类型   app   span   .com   code   pen   

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

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