我是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==3True,但是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/

10-14 18:02
查看更多