从另一个函数中调用函数

时间:2016-10-28 15:32:15

标签: python function

如果我定义一个函数1,它将可变数量的列表作为输入,并提供一个列表作为输出,如下所示:

 def function1(*args):
    size = len(args)
    output = []    
    for k in range(size):
        do_something
        output.append(...)        
    return output  

然后是第二个函数,它也将可变数量的列表作为输入(并返回一个列表),它调用第一个函数,如下所示:

def function2(*args):
    size = len(args)
    output = []   
    for k in range(size):
            for index, line in enumerate(function1(args[k])):
                do_something  
    return output 

当我使用第二个函数时,除非我定义代码的第5行,否则我会收到错误:

            for index, line in enumerate(function1(*args[k])):

我的问题是,当我从另一个功能区调用该函数时,是否还要声明输入数字是未定义的?

1 个答案:

答案 0 :(得分:1)

考虑这三个例子,我们改变的是在{2}之间使用*

def fn1(*args):
    print(args)
  

在[1]中:fn1('a','b',1)

     

('a','b',1)

def fn2(*args):
    fn1(args)
  

在[2]中:fn2('a','b',1)

     

(('a','b',1),)

def fn3(*args):
    fn1(*args)
  

在[3]中:fn3('a','b',1)

     

('a','b',1)

在第二个(fn2)中我们没有使用args解包*,我们得到了一个嵌套在元组内的元组,这不是我们想要的。如果没有看到完整的回溯,我无法确定这是你的问题,但我怀疑如果你修改了如图所示的行后它就可以了。