【问题标题】:Python: How to pass parameters when it isn't an option?Python:当它不是一个选项时如何传递参数?
【发布时间】:2017-04-10 16:54:28
【问题描述】:

我有一个函数 - 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 文档说:

“求值器:一个无参数函数,定义并返回上述模型定义中需要的所有数据。”

【问题讨论】:

  • 那么你想创建一个动态函数,它绑定到你创建的一些参数值?
  • 是的,我认为timgeb一针见血。

标签: python parameter-passing partial


【解决方案1】:

您可以使用functools.partial 构建一个没有原始func_mini 函数参数的函数。演示:

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

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多