首页 > 解决方案 > Python 函数 - 如果输入变量不存在,则使用默认值

问题描述

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

    output = int(var2)

    return output

var2有没有办法在不存在的情况下捕获错误,即函数定义了一个默认值(如上)并被调用:

result = funcname(var1, var2 = cs) 

cs不存在所以如果cs变量不存在我想var2继承默认值而cs不是未定义的错误。

标签: pythonfunctionexceptiondefault

解决方案


在您的情况下,您可以使用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)

在一些教程/书籍中,我还看到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在开始时创建一些值的变量。


推荐阅读