gpt4 book ai didi

python - 比较python中的unix时间戳

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:42 25 4
gpt4 key购买 nike

我的应用程序需要比较两个 unix 时间戳之间的差异并返回 True 或 False。总之,如果用户在尝试评级后的一天或一周内进行了评级,则该函数返回 false。我担心这可能不是很 pythonic,我可能重新发明了轮子。 python 2.5 中是否有预打包的库可以帮助我以更好的方式达到相同的结果?

import time

def is_allowed(time_rated, duration):
durations={'day': 86400, 'week': 604800}
if duration in durations and isinstance(time_rated, int):
time_difference = int(time.time()) - time_rated
if time_difference > durations[duration]:
return True
else:
return False
return False

最佳答案

不,你在这里做的很好,但你可以返回 > 比较的结果,它已经给了你一个 bool 值。这里也不需要将 time.time() float 转换为整数:

def is_allowed(time_rated, duration):
durations = {'day': 86400, 'week': 604800}
if duration in durations and isinstance(time_rated, int):
time_difference = time.time() - time_rated
return time_rated > durations[duration]
return False

您可以通过默认为 float('inf')duration 进一步简化此操作,从而节省您的 if 测试:

def is_allowed(time_rated, duration):
if not isinstance(time_rated, int):
return False
duration = {'day': 86400, 'week': 604800}.get(duration, float('inf'))
return time.time() - time_rated > duration

如果满足以下条件,则返回 False:

  • time_rated 不是整数
  • duration 不等于 'day''week'(因为没有数字会大于 float(' inf')).
  • time_rated 小于 86400 或 604800 秒前,具体取决于 duration

关于python - 比较python中的unix时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com