美文网首页
警惕python中的默认参数

警惕python中的默认参数

作者: bigtom | 来源:发表于2016-09-22 14:34 被阅读11次
def foo(bar, baz=[]):
    baz.append(bar)
    print baz

foo(1)
foo(2)

输出结果为

[1]
[1,2]

原因是,当解释器执行def的时候,默认参数会被计算并存在函数对象的.func_defaults属性中。这个对象在所有的函数调用中共享。
我们可以测试一下

def foo(bar, baz=[]):
    baz.append(bar)
    print baz

print foo.func_defaults  # ([],)
foo(1)
print foo.func_defaults  # ([1],)

相关文章

  • 警惕python中的默认参数

    输出结果为 原因是,当解释器执行def的时候,默认参数会被计算并存在函数对象的.func_defaults属性中。...

  • python-调用函数(2)

    python中,有默认参数时,需要将默认参数放在必选参数之后 有多个默认参数时,可以通过顺序提供默认参数,也可以不...

  • Python函数的参数(详细版)

    函数的参数有:必选参数、默认参数、可变参数、关键字参数。 在Python中定义函数,可以用必选参数、默认参数、可变...

  • Python 那些不为人知的冷知识

    1、默认参数最好不为可变对象 函数的参数分三种 可变参数 默认参数 关键字参数 Python 中的 def 语句在...

  • python基础-07-函数

    python基础-函数 1.函数的定义 例子: 2.python中函数的参数详解 必备参数demo: 默认参数de...

  • Python的参数

    在Python 中,除了正常定义的参数外,Python 还可以使用默认参数,可变参数,关键字参数,使得函数的灵活度...

  • python---函数参数

    python---函数参数 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参...

  • Python—参数类型

    1、位置参数(必选参数) 2、默认参数 (1)设置默认参数时,必选参数在前,默认参数在后,否则Python解释器会...

  • python学习之路-函数

    python中函数定义语法 def power(): 函数的参数 参数的默认 eg:def power(x,n=...

  • Python之函数的参数

    Python中函数的参数有五种:位置参数(必选参数)、默认参数、可变参数、关键字参数、命名关键字参数。 位置参数 ...

网友评论

      本文标题:警惕python中的默认参数

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