我使用的dateutil.relativedelta()是time_unit在我的age-tuple和代码中对应的命名参数,以获得相对时间的样子:
def time_delta(age):
now = datetime.fromtimestamp(int(time.time()))
if age.time_unit == "seconds":
relative_time = now - relativedelta(seconds=int(age.value))
elif age.time_unit == "minutes":
relative_time = now - relativedelta(minutes=int(age.value))
elif age.time_unit == "hours":
relative_time = now - relativedelta(hours=int(age.value))
elif age.time_unit == "days":
relative_time = now - relativedelta(days=int(age.value))
elif age.time_unit == "weeks":
relative_time = now - relativedelta(weeks=int(age.value))
elif age.time_unit == "months":
relative_time = now - relativedelta(months=int(age.value))
elif age.time_unit == "years":
relative_time = now - relativedelta(years=int(age.value))
Run Code Online (Sandbox Code Playgroud)
在Python 2.7中是否有任何方法可以使用以下内容:
relative_time = now - relativedelta(eval("eval('age.time_unit') +'=' +age.value"))
Run Code Online (Sandbox Code Playgroud)
以上不起作用.我是不是坚持了,if/elif或者我能做些什么更好的事情吗?
def time_delta(age):
now = datetime.fromtimestamp(int(time.time()))
return now - relativedelta(**{age.time_unit: int(age.value)})
Run Code Online (Sandbox Code Playgroud)
(代码未经过测试,但应该可以使用)
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |