Python 如何检查是否缺少参数
我写了这段代码:Python 如何检查是否缺少参数,python,Python,我写了这段代码: def suma(num1,num2): if(isinstance(num1,int)) or (isinstance(num2,int)) : if num1<0 or num2<0: print("iavo") elif num1!=int(num1)or num2!=int(num2): print("iao") else: suma_
def suma(num1,num2):
if(isinstance(num1,int)) or (isinstance(num2,int)) :
if num1<0 or num2<0:
print("iavo")
elif num1!=int(num1)or num2!=int(num2):
print("iao")
else:
suma_a = num1+num2
return suma_a
else:
print("ia")
def suma(num1,num2):
如果(isinstance(num1,int))或(isinstance(num2,int)):
如果不同时发送两个数字,则该函数将抛出一个错误。在函数中不能省略参数
如果您这样做了,例如:
def summ(a, b=None):
return a+b
然后您可以省略b,但是这将再次抛出不受支持的操作数错误,因为您无法添加数字和无
如果在其他函数的作用域中调用该函数,或者在类中调用该函数,则可以检查是否存在所有数字,您可以将其包装在try-except块中,并尝试处理错误,如最愚蠢的示例所示:
try:
summ(1)
except:
print("Missing arguments, you can't add numbers and None in Python!"\
" Please send b.")
如果您不指定默认值,并且用户没有提供两个参数,那么在进入函数之前,您将得到一个TypeError:suma()缺少1个必需的位置参数
:
def suma(num1=None,num2=None):
# make sure user has entered two args and both are numbers
if num1 is None or num2 is None:
return "You Must choose two numbers"
# rest of code
None
值在逻辑比较时返回False
检查两个参数是否丢失的简便方法可以是:
def suma(num1,num2):
if not(num1 or num2):
print('Missing both arguments')
这是你最初问的
但正如其他人所指出的,即使只遗漏一个参数,函数也会抛出异常
因此,如果要检查是否缺少任何参数,可以执行以下操作:
def suma(num1,num2):
if not(num1 and num2):
print('Missing at least one argument')
如果您希望参数的值为0,这将无法正常工作,因为它们在逻辑检查中的计算结果将为False。在这种情况下,您可以使用以下更正式的方法:
not(num1 is None or num2 is None)
not(num1 is None and num2 is None)
在你的声明中:
def suma(num1,num2):
pass
如果有人仅使用一个参数调用suma
,则函数将抛出错误
您可以通过断言参数的形式添加额外的检查,如下所示:
def suma(num1,num2):
assert (num1 is not None)
assert (num2 is not None)
这不是测试缺少的参数,而是测试提供的具有值None
的参数。