2017-04-10 30 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 
相關問題