2017-04-10 70 views
1

我有一个函数 - func_main - 它有几个输入。其中一个输入是另一个函数 - func_mini。较小的函数func_mini加载一些数据,并且它需要能够根据传递给它的参数从不同来源加载数据。问题是我正在阅读func_main上的文档,它说它只接受无参数函数。我怎样才能解决这个问题?Python:如何传递参数,当它不是一个选项?

例如:

def func_main(evaluator = None): 

    num_list = [1,2,3] 
    return evaluator(num_list) 



def func_mini(data_source = None): 

    if not data_source: 
     data_source = config.DATA_SOURCE 

    return pandas.read_csv(data_source).min 

我想要做的:

func_main(func_mini(data_souce='path/to/my/file')) 

但func_main文件说:

“评价:定义和返回所需的所有数据参数的函数上述模型定义“。

+1

因此,你想创建一个动态函数,然后,这是绑定到你创建的一些参数值? –

+0

是的,我认为timgeb碰到了头部。 – user1367204

回答

6

您可以使用functools.partial从原始func_mini函数中构建不带参数的函数。演示:

>>> from functools import partial 
>>> def foo(x): 
...  print(x) 
... 
>>> foo_argless = partial(foo, 'hi') 
>>> foo_argless() 
hi 
相关问题