我可以在把它們作為變量傳遞時更改功能參數嗎?

2024-04-20 12:09:18 发布

您现在位置:Python中文网/ 问答频道 /正文

请原谅我在标题中的拙劣措辞,但这里有一个较长的解释:

我有一个函数,它作为参数接受一些函数,这些函数用于确定从数据库检索哪些数据,例如:

def customer_data(customer_name, *args):
    # initialize dictionary with ids
    codata = dict([(data.__name__, []) for data in args])
    codata['customer_observer_id'] = _customer_observer_ids(customer_name)

    # add values to dictionary using function name as key
    for data in args:
        for coid in codata['customer_observer_id']:
            codata[data.__name__].append(data(coid))
    return codata

这使得对函数的调用看起来像这样:

customer_data('customername', target_parts, source_group, ...)

其中一个函数定义了一个额外的参数:

def polarization_value(customer_observer_id, timespan='day')

我想要的是一种巧妙地更改timespan变量的方法。一个明显的方法是在customer\u observator中包含一个关键字参数,并在调用的函数名为'pararization\u value'时添加一个异常,但我觉得有更好的方法可以做到这一点。你知道吗


Tags: 方法函数nameinididsfordata