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

2024-04-24 09:02:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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条件为false,则执行该部分代码并跳过{}。在

你能解释一下为什么if语句是在错误条件下执行的吗?在


Tags: 函数inforlenifdefexitarg
3条回答

您必须应用len(args) == 3而不是args == 3,因为如果您使用args,那么它是一个元组列表,如果您检查它,则必须转到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)

此代码将给出预期的结果。在

不,args == 3不是True。你可能是说len(args) == 3。在

我想你一定是在做len(args)==3而不是{}:

if len(args)==3:

args==3成为函数内部的元组时,args==3永远不会为真。在

因此,即使你传递了myfunc(3),那么你也将匹配(3,)==3,即False。在

相关问题 更多 >