我试图按照干的原则编写不重复的代码。
考虑包含许多参数的函数调用,包括强制性的和可选的。在某些情况下,我希望为可选参数指定一个值,而在另一些情况下,我希望将该值保留为默认值。为了简化我的问题:
def func(a, b=2):
print("b = {}".format(b))
avalue = 1
condition = 2
arg = None # <-- Means: "use default"
if condition == 1:
arg = 3
func(avalue, b=arg)输出
b = None预期输出
b = 2因此,我试图避免像这样两次编写函数调用的代码:
if arg:
func(avalue, b=arg)
else:
func(avalue)在Python中有可能吗?
发布于 2017-06-26 09:48:54
那麽:
def func(a, b=None):
if not b:
b = 2
print("b = {}".format(b))
avalue = 1
condition = 2
arg = None # <-- Means: "use default"
if condition == 1:
arg = 3
func(avalue, b=arg)然而,在这种情况下,缺省值并没有按其应有的方式使用,当您有两种不同的方法时,通常会保留默认值,其中一种方法的工作方式不同,而另一种方法则不应该用开关进行加/减:
def maths(a,b,sub=false):
result = a + b
if sub:
result = a - b
return resulthttps://stackoverflow.com/questions/44756825
复制相似问题