我是python的新手。请看以下脚本:
def myfunc(*args):
print len(args)
if args == 3:
for arg in args:
print arg
else:
print "exit"
a, b, c = 1, 2, 3
myfunc(a, b, c)
如您所见,传递给函数的参数数量为三个。现在条件
args==3
是True
,但是else
部分已执行。另一方面,如果if
条件为false,则将执行该部分代码,并跳过else
。您能解释为什么
if
语句在False条件下执行吗? 最佳答案
我认为您必须使用len(args)==3
而不是args==3
:
if len(args)==3:
条件
args==3
永远不会为真,因为args
成为函数内部的元组。因此,即使您通过
myfunc(3)
,也将匹配(3,)==3
,即False
。关于python - 使用* args变量在函数中传递多个变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13027711/