以下是我最近开始使用的解决方案:class Timer:
def __enter__(self):
self.begin = now()
def __exit__(self, type, value, traceback):
print(format_delta(self.begin, now()))
您这样使用它(至少需要Python2.5):with Timer():
do_long_code()
当代码完成时,Timer会自动打印出运行时间。太好了!如果我想在Python解释器中快速调试一些东西,这是最简单的方法。
下面是“now”和“format_delta”的一个示例实现,尽管可以随意使用您喜欢的计时和格式化方法。import datetime
def now():
return datetime.datetime.now()
# Prints one of the following formats*:
# 1.58 days
# 2.98 hours
# 9.28 minutes # Not actually added yet, oops.
# 5.60 seconds
# 790 milliseconds
# *Except I prefer abbreviated formats, so I print d,h,m,s, or ms.
def format_delta(start,end):
# Time in microseconds
one_day = 86400000000
one_hour = 3600000000
one_second = 1000000