美文网首页计算机@linux_python_R 技术帖
python中函数的默认参数问题

python中函数的默认参数问题

作者: 生信编程日常 | 来源:发表于2020-05-21 21:50 被阅读0次

有以下一段代码:

def test(var, x = []):
    x.append(var)
    return x

L1 = test(10)
L2 = test(1, [])
L3 = test(20)

print(L1)
print(L2)
print(L3)

输出:


第三次调用的时候,很容易误以为会L1输出[10],L3输出[20],但是其实都是[10, 20]。这里其实是因为,函数test的x列表参数在没有被指定的时候,这个x列表的值随后就会被利用。其实带有默认参数的会在函数在被定义的时候就被计算,而不是在调用的时候被计算的。L1与L3是在同一个默认列表上操作的,但是L2指定了参数,因此是在另外列表上进行操作的。

用以下的方法更加稳妥:

def test(var, x = None):
    if x is None:
        x = []
    x.append(var)
    return x

L1 = test(10)
L2 = test(1)
L3 = test(20)

print(L1)
print(L2)
print(L3)

相关文章

  • python基础-07-函数

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

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

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

  • python中函数的默认参数问题

    有以下一段代码: 输出: 第三次调用的时候,很容易误以为会L1输出[10],L3输出[20],但是其实都是[10,...

  • python---函数参数

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

  • python学习之路-函数

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

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

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

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

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

  • python的函数属性

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

  • Python的参数

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

  • python个人学习——函数

    函数的参数 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都...

网友评论

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

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