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)
你只需像这样实例化它:
# 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)
可以。