我正在创建一个包装器函数,并希望对将关键字参数传递给嵌套函数进行参数化。
我已经检查了很多关于堆栈溢出的问题,这些问题听起来与我想做的事情类似,但是也许我不理解或者只是没有为我要完成的事情使用正确的术语。 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解析为关键字参数?