使用* args变量传递函数中的多个变量

时间:2012-10-23 09:46:35

标签: python function args

我是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)

如您所见,传递给函数的参数数量为3。现在条件args==3True,但else部分已执行。另一方面,如果if条件为假,则执行该部分代码并跳过else

你能解释为什么在{False条件下执行if语句吗?

3 个答案:

答案 0 :(得分:7)

不,args == 3 True。你可能意味着len(args) == 3

答案 1 :(得分:4)

我认为你必须做len(args)==3而不是args==3

if len(args)==3:

条件args==3永远不会成为真,因为args成为函数内的元组。

所以,即使您通过myfunc(3),您也会匹配(3,)==3False

答案 2 :(得分:0)

您必须应用len(args) == 3而不是args == 3,因为如果您使用args,那么它就是一个tupple列表,如果您检查它,则必须转到else条件

def myfunc(*args):

    if len(args) == 3:
        for arg in args:
            print arg
    else:
        print "exit"
a, b, c = 1, 2, 3
myfunc(a, b, c)

此代码为您提供预期结果。