考虑此方法:
def duration(duration_type, t):
t = timedelta(duration_type=t)
其中duration_type
是代表timedelta
参数之一的字符串(days
,hours
,seconds
等)
有没有办法正确解析字符串并将其作为参数输入?处理属性时,类似于setattr()
。
很明显,上面的代码会产生以下错误:
TypeError: 'duration_type' is an invalid keyword argument for __new__()
用例:从默认的python配置文件读取此值,并将其用于timedelta
对象中。
答案 0 :(得分:3)
您可以使用特殊的**
(双星号)将dict作为函数中的命名参数传递:
def duration(duration_type, t):
kwargs = {duration_type: t}
return timedelta(**kwargs)