Python 函数参数的多个默认值

7 python parameters function parameter-passing

如果我有一个具有如下函数的类,并且我想要两个具有默认值的变量:

class item:
    def __init__(self, var1=1, var2=2)
        self.var1 = var1
        self.var2 = var2
Run Code Online (Sandbox Code Playgroud)

我如何创建此类的实例并更改 的var2值而不更改 的var1值?

a = item(#Leave var1 alone, but set var2 to 'hello')
Run Code Online (Sandbox Code Playgroud)

sbe*_*rry 3

你只需像这样实例化它:

# leave var1 as default
a = item(var2='hello')

# leave var2 as default
a = item(var1='hey')

# overwrite both var1 and var2
a = item(var1='hey', var2='hello')

# use both defaults
a = item()
Run Code Online (Sandbox Code Playgroud)

在注释中的示例中需要注意的是,您现在必须提供 avar1因为它没有默认值。所以item(var1=1, var3=2)item(1, var3=2)都会起作用,而item(var3=2)不会。另外,当存在没有默认值的参数时,关键字参数必须放在最后,因此item(var3=2, 1)也不起作用,但item(var3=2, var1=1)可以。