我需要编辑一些 "default arguments" 而不是全部,我该怎么做?

I need to edit some "default arguments" not all of them, how can I do that?

所以让我们从头开始。在 python 中,您可以编写带有许多参数的函数,其中一些是 "editable",其中一些是默认启动的。通常默认参数位于函数参数的最后。

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

让我们使用下一个例子:

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 的值)

你应该把函数写成

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))

希望对您有所帮助:)

你可以这样使用:

def foo(val1, val2 = None, **kwargs):
   return val1, val2, kwargs

print (foo(1))
(1, None, {})
print (foo(1, val3="no declared argument"))
(1, None, {'val3': 'no declared argument'})

kwargs 是一个包含您传递给函数的参数的字典 'foo'。具有默认值的参数必须在没有默认值的参数之后。总是在最后,**kwargs o **args。 args 是一个数组,其中的参数没有在函数中显式声明,而 kwargs 是字典。

在 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')

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