首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回python生成器以进行时序分析

返回python生成器以进行时序分析
EN

Stack Overflow用户
提问于 2016-12-07 02:03:10
回答 1查看 81关注 0票数 0

我写了一个代码片段,它使用生成器返回自上次调用以来的运行时间。

代码语言:javascript
复制
def time_gen(start_time):
    start = start_time
    while True:
        elapsed = time.time() - start
        start = time.time()
        yield elapsed

def test():
    a = time_gen(time.time())
    for i in range(4):
        time.sleep(1) 
        print(a.next()) #prints about 1 second

它似乎工作得很好。但我不喜欢用户需要传递开始时间的方式。有没有办法写一个函数,返回一个已经作为参数传递了开始时间的生成器?

代码语言:javascript
复制
#Broken Code
def time_closure():
    def time_gen(start_time):
        start = start_time
        while True:
            elapsed = time.time() - start
            start = time.time()
            yield elapsed

    a = time_gen(time.time())
    return a

#Usage of Broken Code
a = time_closure()
a.next()
EN

回答 1

Stack Overflow用户

发布于 2016-12-07 02:10:59

您不必将启动时间传递给生成器。您可以只在其第一行执行start = time.time(),其余内容保持原样

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41001937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档