Python 函数内的句柄TypeError
我想在函数内部而不是外部处理TypeError。可能吗??当我忘记args而不是程序失败时,我需要得到一条消息Python 函数内的句柄TypeError,python,python-3.x,Python,Python 3.x,我想在函数内部而不是外部处理TypeError。可能吗??当我忘记args而不是程序失败时,我需要得到一条消息 def numbers(a, b): print(a + b) numbers() >>>TypeError: numbers() missing 2 required positional arguments: 'a' and 'b' try: numbers() except TypeError: print("ARGS") 解: de
def numbers(a, b):
print(a + b)
numbers()
>>>TypeError: numbers() missing 2 required positional arguments: 'a' and 'b'
try:
numbers()
except TypeError:
print("ARGS")
解:
def numbers(*args):
try:
if len(args) == 2:
a = args[0]
b = args[1]
print(a + b)
elif len(args) > 2:
print("Max args: 2")
else:
print("Add 2 args")
except Exception as e:
print(e)
您可以重构它并以更干净的方式处理参数:
def numbers(a=None, b=None):
if a==None or b==None:
return "Not enough arguments, two requried"
print(a + b)
numbers()
不,你不能在函数内部处理这个问题,因为这个错误意味着它永远不会被调用。你所指的不可能仅仅是因为你以错误的方式调用函数而产生错误。问题不在于函数,而在于调用函数的方式。默认参数呢<代码>def编号(a=无,b=无)?然后在函数中显式地处理参数?您可以为函数参数添加默认值,这样省略它们不会引起错误,如果这是您的意思的话。@HiroProgator这应该是这里的答案。。。对于未来的读者来说:不要这样做。默认行为(例外)比这要好得多。总是。不过,默认参数对于不同的用途非常有用。