将命名函数参数作为关键字参数传递给另一个函数

时间:2019-07-18 21:44:43

标签: python

我正在创建一个包装器函数,并希望对将关键字参数传递给嵌套函数进行参数化。

我已经检查了很多关于堆栈溢出的问题,这些问题听起来与我想做的事情类似,但是也许我不理解或者只是没有为我要完成的事情使用正确的术语。 passing functions as argument with named parameters听起来很贴切,但似乎都没有解决我的问题。 Python: How to pass functions to another function as arguments?

def generate_date_list(start_date, end_date=datetime.today().date(),time_period='months') -> list:
    start_date_original = start_date
    end_date_original = end_date
    date_param_list = []

    if type(start_date_original) == str:
        start_date = datetime.strptime(start_date_original,'%Y-%m-%d').date()
    if type(end_date_original) == str:
        end_date = datetime.strptime(end_date_original,'%Y-%m-%d').date()

    current_date = start_date

    while current_date < end_date:
        date_param_list.append(current_date)
        current_date += relativedelta(time_period=1)

使用参数time_period和默认分配的“ months”,我希望看到relativedelta将time_period从原始的relativedelta(time_period = 1)解析为“ relativedelta(months = 1)”。

相反,我得到的结果是:构造函数调用中出现了意外的关键字参数'time_period'。

如何将“ months”的time_period解析为关键字参数?

0 个答案:

没有答案