def funcname(var1, var2 = "1234"):
output = int(var2)
return output
在var2
不存在的情况下有没有一种捕获错误的方法,即函数定义了一个默认值(上面)并称为:
result = funcname(var1, var2 = cs)
但是cs
不存在,因此在cs
变量不存在的情况下,我希望var2
继承默认值,而不是定义为cs
的错误。
答案 0 :(得分:0)
根据您的情况,您可以使用try/except
try:
result = function(var1, cs)
except NameError:
result = function(var1)
但是我宁愿在默认值开头创建变量cs
cs = "1234"
并且没有不存在的变量也没有问题。
最终我会使用None
cs = None
and函数将使用None
来识别是否应使用默认值
#def funcname(var1, var2=None):
def funcname(var1, var2="1234"):
if var2 is None:
var2 = "1234"
return int(var2)
在一些教程/书中,我还看到var2=object
是None
是正确的值,不应替换,或者应将其替换为不同于默认值的其他值。
我必须为此使用object
,所以我不确定在此示例中是否正确使用它。
cs = None
def func(var1, var2=object):
if var2 == object:
var2 = "1234"
elif var2 is None:
var2 = "0"
return int(var2)
print(func(1)) # 1234
print(func(1, 2)) # 2
print(func(1, None)) # 0
print(func(1, cs)) # 0
但是我认为最好的办法是从某个值开始创建变量cs
。