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=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