Python: 没有选项时如何传递参数?
Python: How to pass parameters when it isn't an option?
我有一个函数 - func_main - 它有几个输入。其中一个输入是另一个函数 - func_mini。较小的函数 func_mini 加载一些数据,它需要能够根据传递给它的参数从不同的源加载数据。问题是我正在阅读关于 func_main 的文档,它说它只接受无参数函数。我该如何解决这个问题?
例如:
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 文档说:
"evaluator: A parameterless function that defines and return all data needed in the above model definition."
您可以使用 functools.partial
构建一个没有原始 func_mini
函数参数的函数。演示:
>>> from functools import partial
>>> def foo(x):
... print(x)
...
>>> foo_argless = partial(foo, 'hi')
>>> foo_argless()
hi
我有一个函数 - func_main - 它有几个输入。其中一个输入是另一个函数 - func_mini。较小的函数 func_mini 加载一些数据,它需要能够根据传递给它的参数从不同的源加载数据。问题是我正在阅读关于 func_main 的文档,它说它只接受无参数函数。我该如何解决这个问题?
例如:
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 文档说:
"evaluator: A parameterless function that defines and return all data needed in the above model definition."
您可以使用 functools.partial
构建一个没有原始 func_mini
函数参数的函数。演示:
>>> from functools import partial
>>> def foo(x):
... print(x)
...
>>> foo_argless = partial(foo, 'hi')
>>> foo_argless()
hi