python里的默认参数

Posted 赵凯强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python里的默认参数相关的知识,希望对你有一定的参考价值。

 

def extendList(val, test=[]):
    test.append(val)
    return test
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList(a)
print("list1 = %s" % list1)
print("list2 = %s" % list2)
print("list3 = %s" % list3)
运行结果:
list1 = [10, ‘a‘]
list2 = [123]
list3 = [10, ‘a‘]

    如上述代码运行结果,我开始学习python的时候,也会认为list1应该输出10,list3应该输出a,但并不是这样的,在某方法默认参数为test=[],当调用该方法,当没有的为其传入值的时候,正如list1和list3显示的那样,他们两个调用的方法中操作的test对应的是同一地址空间下的list,所以会如此的输出。

   我们可以采用如下的方式来避免这样的问题:

def extendList(val, test=None):
    if test == None:
        test = []
    test.append(val)
    return test

 





以上是关于python里的默认参数的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

Python函数

python学习笔记2---函数

Python snippet(代码片段)

Thymeleaf,片段和默认参数

python里的end是啥意思