我需要编辑一些“默认参数”而不是全部,我该怎么做?

时间:2019-01-17 13:23:44

标签: python function args

因此,让我们从头开始。在python中,您可以编写带有许多参数的函数,其中一些是“可编辑的”,并且其中一些是默认启动的。通常,默认参数位于函数参数的末尾。

假设我有许多默认参数,并且我想为练习只编辑其中一个而不是第一个。

让我们使用下一个示例:

foo(val_1,val_2,val_3=0,val_4=1,val_5='true')
    sth here
return sth else

所以在这里我需要在函数之前定义

val_1,val_2

默认为其他参数。...如何更改:

val_5,

val_4,

无需编写整个函数

foo(val_1,val_2,val_3=0,val_4=10,val_5='false')

是否可以编写如下内容:

foo(val_1,val_2, ,val_4=10,val_5='false')

(缺少val_3的值)

3 个答案:

答案 0 :(得分:3)

在Python中,当您为参数指定默认值时,将其设为命名变量

如果使用以下原型声明方法:

foo(val_1, val_2, val_3=0, val_4=10, val_5='false')

然后val_3val_4val_5被命名为变量,其默认值分别为010'false'

调用此方法时,可以忽略其中任何一个。因此,以下任何调用都是合法的:

foo(x, y)

foo(x, y, val_3=3)

foo(x, y, val_3=1, val_5='haha')

任何未指定的参数都将具有其默认值。

答案 1 :(得分:0)

您应将函数编写为

def foo(val_1,val_2,val_3=0,val_4=1,val_5='true'):
    #whatever code you want

然后运行以下命令不应引起任何错误

print(foo(1,2,val_4=7,val_5='false'))
print(foo(1,2,val_3=6,val_4=9))

希望它会有所帮助:)

答案 2 :(得分:0)

您可以像这样使用somethinig:

ls

kwargs是具有传递给函数'foo'的参数的字典。具有默认值的参数必须在不带默认值的参数之后。而且总是在最后,变态或变态。 args是带有参数的数组,函数中没有显式声明,而kwargs是dict。