Python 函数 - 如果输入变量不存在则使用默认值
Python function - if input variable doesn't exist then use default value
def funcname(var1, var2 = "1234"):
output = int(var2)
return output
有没有办法在 var2
不存在的情况下捕获错误,即函数定义了一个默认值(以上)并被调用:
result = funcname(var1, var2 = cs)
但 cs
不存在,所以如果 cs
变量不存在,我希望 var2
继承默认值而不是 cs
不存在的错误定义。
在你的情况下你可以使用try/except
try:
result = function(var1, cs)
except NameError:
result = function(var1)
但我宁愿在开始时使用默认值
创建变量 cs
cs = "1234"
并且不存在变量也没有问题。
最终我会使用 None
cs = None
并且函数将使用 None
来识别它是否应该使用默认值
#def funcname(var1, var2=None):
def funcname(var1, var2="1234"):
if var2 is None:
var2 = "1234"
return int(var2)
在某些 tutorials/books 中,我还看到 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
。
def funcname(var1, var2 = "1234"):
output = int(var2)
return output
有没有办法在 var2
不存在的情况下捕获错误,即函数定义了一个默认值(以上)并被调用:
result = funcname(var1, var2 = cs)
但 cs
不存在,所以如果 cs
变量不存在,我希望 var2
继承默认值而不是 cs
不存在的错误定义。
在你的情况下你可以使用try/except
try:
result = function(var1, cs)
except NameError:
result = function(var1)
但我宁愿在开始时使用默认值
创建变量cs
cs = "1234"
并且不存在变量也没有问题。
最终我会使用 None
cs = None
并且函数将使用 None
来识别它是否应该使用默认值
#def funcname(var1, var2=None):
def funcname(var1, var2="1234"):
if var2 is None:
var2 = "1234"
return int(var2)
在某些 tutorials/books 中,我还看到 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
。