作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须使用日期时间减去 2 个日期,如下所示:
datetime.datetime.now() - datetime.timedelta(minutes=15)
# subtracting 15 minutes
问题是我不一定需要减去分钟。我有一本字典,它告诉我应该减去什么。
period = {'quantity': '15', 'time': 'minutes'}
但是我需要当字典改变时,减去的时间也会改变。像这样:
if period['time'] == 'minutes':
tempo_atras = datetime.datetime.now() -datetime.timedelta(minutes=int(period['quantity']))
elif period['time'] == 'hours':
tempo_atras = datetime.datetime.now() - datetime.timedelta(hours=int(period['quantity']))
elif period['time'] == 'days':
tempo_atras = datetime.datetime.now() - datetime.timedelta(days=int(period['quantity']))
elif period['time'] == 'weeks':
tempo_atras = datetime.datetime.now() - datetime.timedelta(weeks=int(period['quantity']))
我觉得我写的方式不太干净,所以我需要一种方法来转换函数参数中的period['time']
字符串;像这样:
tempo_atras = datetime.datetime.now() - datetime.timedelta(period['time']=int(period['quantity']))
我该怎么做?
最佳答案
您可以使用字典解包运算符**
将字典扩展为关键字参数,因此您只需先创建字典即可。
q = {period['time']: int(period['quantity'])}
tempo_atras = datetime.datetime.now() - datetime.timedelta(**q)
文档:
关于python - 如何将字符串转换为函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70703609/
我是一名优秀的程序员,十分优秀!