Python函数-如果输入变量不存在,则使用默认值

时间:2019-12-18 14:07:52

标签: python function exception default

def funcname(var1, var2 = "1234"):

    output = int(var2)

    return output

var2不存在的情况下有没有一种捕获错误的方法,即函数定义了一个默认值(上面)并称为:

result = funcname(var1, var2 = cs) 

但是cs不存在,因此在cs变量不存在的情况下,我希望var2继承默认值,而不是定义为cs的错误。

1 个答案:

答案 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=objectNone是正确的值,不应替换,或者应将其替换为不同于默认值的其他值。

我必须为此使用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