美文网首页
python 函数参数的默认值

python 函数参数的默认值

作者: 第三个账号 | 来源:发表于2018-07-26 15:54 被阅读0次

函数参数的默认值只计算一次。当参数是可变对象时(列表,字典,集合,对象等),函数执行的结果和想象的可能不一样。例如下面的例子:

def f(a, L=[]):
    L.append(a)
    return id(L), L
print(f(1))
print(f(2))
print(f(3))

执行结果:

(140024382880392, [1])
(140024382880392, [1, 2])
(140024382880392, [1, 2, 3])

这是因为参数L在第一次调用f的时候被创建,之后每次调用f函数,都是使用同一个参数对象。
如果你不希望每次调用函数时,共享默认值,你可以将函数修改成如下方式:

def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return id(L), L

执行结果

(140024382877256, [1])
(140024382877256, [2])
(140024382877256, [3])

相关文章

  • Python函数、对象几个知识点

    函数 一、参数 Python的函数参数可以定义默认值,当调用者没有提供参数时,函数在执行过程中用默认值设置该参数。...

  • Python开发人员犯下的10个最常见的错误

    1 滥用表达式作为函数参数的默认值 python允许通过为函数提供默认值来指定函数参数的,但是当默认值是可变的时,...

  • python函数

    python函数 什么是函数 函数语法 调用函数 函数参数形参与实参传参指定参数传参参数默认值可变参数参数解包参数...

  • 5-2 深入函数-定义与调用

    1.默认值参数 在Python中,可以在声明函数的时候,预先为参数设置一个默认值,当调用函数,如果某个参数具有默认...

  • python的函数属性

    1. 函数的参数 在Python中,函数的参数可以有默认值,也支持使用可变参数,所以Python并不需要像其他语言...

  • 1.0 C++远征:函数参数默认值、函数重载、内联函数

    C++远征 [TOC] 一、函数参数默认值 1.函数参数默认值的声明 2.函数参数默认值的定义 3.函数参数默认值...

  • ES6-函数参数的赋值

    函数参数的解构赋值: 函数参数解构赋值的默认值: 函数参数解构赋值的默认值undefined:

  • ES6 函数的扩展

    函数参数的默认值 ES6允许为函数的参数设置默认值,即直接写在参数定义的后面 函数参数默认值与解构赋值默认值结合使...

  • c++函数特性

    函数重载,参数默认值,内联函数 重载:函数名相同,参数列表不同,作用域相同。 参数默认值:参数默认值必须从最后开始...

  • C++函数参数默认值

    函数参数默认值功能是指,当调用函数省略了实参时,函数将使用默认的参数值。 函数参数默认值有两个规定: 参数默认值需...

网友评论

      本文标题:python 函数参数的默认值

      本文链接:https://www.haomeiwen.com/subject/hjybmftx.html