【问题标题】:Passing one list instead of two in python在 python 中传递一个列表而不是两个列表
【发布时间】:2021-06-15 16:28:30
【问题描述】:

这里我写了一个函数,它接受两个列表作为参数。但是当我通过一个列表作为参数调用这个函数时,它运行良好!为什么这行得通?这里 name_function 有两个参数,但我只传递了一个列表作为参数。

def name_function(names=list(),_list=list()):
    for name in names:
        _list.append(name)
    return _list
print(name_function(['mike','smith','bob']))

【问题讨论】:

  • 如果你只传递一个列表,那么第二个列表会自动设置为一个空列表:_list=list()
  • 因为你有默认参数。
  • names=list() 表示您正在创建空列表并将其作为默认值传递给 name 参数。 _list 也是如此。
  • @L3viathan 我认为 OP 是在问为什么默认参数首先起作用。但是对于可变的默认值,我相信这个问题很快就会相关。 ;)

标签: python-3.x list function


【解决方案1】:
  • 在函数定义中,您已经初始化了两个 带有空列表的参数,即您使用两个默认值 函数定义中的参数。
  • 由于上述原因,如果您提供提供,则函数调用有效 两个论点或任何一个论点或没有论点 全部。
  • 要了解有关 python 中默认参数的更多信息,您可以参考 this linkthis link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 2018-05-15
    • 2020-04-22
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多