如果我有一个具有如下函数的类,我希望有两个具有默认值的变量:
class item:
def __init__(self, var1=1, var2=2)
self.var1 = var1
self.var2 = var2
我如何创建此类的实例并更改var2
的值而不是var1
?
a = item(#Leave var1 alone, but set var2 to 'hello')
答案 0 :(得分:1)
您只需将其实例化为:
# 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()
评论中您的示例中要注意的是,必须现在提供var1
,因为它没有默认值。因此item(var1=1, var3=2)
和item(1, var3=2)
都会有效,而item(var3=2)
则不会。当存在没有默认值的参数时,关键字参数也必须是最后一个,因此item(var3=2, 1)
也不起作用,但item(var3=2, var1=1)
会这样。
答案 1 :(得分:0)
实例化时使用命名参数:
a = item(var2=42)
这会将var1
保留为默认值1
,但会将var2
设置为42。
以下脚本显示了这一点:
class item:
def __init__(self, var1=1, var2=2):
self.var1 = var1
self.var2 = var2
a = item()
print a.var1
print a.var2
b = item(var2=42)
print b.var1
print b.var2
根据需要输出:
1
2
1
42