Python - 将字符串转换为参数(或动态选择日期的增量持续时间类型)?
Python - convert string to argument (or dynamically choose increment duration type for date)?
是否可以将字符串转换为方法的参数?
假设我可以获得这样的字符串 'weeks'
、'months'
、'years'
.
现在我有了这个:
from dateutil.relativedelta import relativedelta
from datetime import date
today = date.today()
所以在这之后我需要增加 today
以字符串形式写入的持续时间类型。例如,如果将提供字符串 'years'
,那么它应该这样做(假设持续时间为 10
):
some_date = today + relativedelta(years=10)
当然,我可以使用 ifs 并检查传递了哪种 string
来做到这一点。但也许有更好的方法将字符串转换为该关键字,所以我不需要很多 ifs 来实现这种方法?
您可以利用 python
的关键字参数功能
some_date = today + relativedelta(**{'years': 10})
您也可以在使用前准备字典
kwargs = {}
kwargs['years'] = 10
some_date = today + relativedelta(**kwargs)
更多信息:
是否可以将字符串转换为方法的参数?
假设我可以获得这样的字符串 'weeks'
、'months'
、'years'
.
现在我有了这个:
from dateutil.relativedelta import relativedelta
from datetime import date
today = date.today()
所以在这之后我需要增加 today
以字符串形式写入的持续时间类型。例如,如果将提供字符串 'years'
,那么它应该这样做(假设持续时间为 10
):
some_date = today + relativedelta(years=10)
当然,我可以使用 ifs 并检查传递了哪种 string
来做到这一点。但也许有更好的方法将字符串转换为该关键字,所以我不需要很多 ifs 来实现这种方法?
您可以利用 python
的关键字参数功能some_date = today + relativedelta(**{'years': 10})
您也可以在使用前准备字典
kwargs = {}
kwargs['years'] = 10
some_date = today + relativedelta(**kwargs)
更多信息: