栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Python timeit模块捕获返回值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Python timeit模块捕获返回值?

问题归结为timeit._template_func不返回函数的返回值:

def _template_func(setup, func):    """Create a timer function. Used if the "statement" is a callable."""    def inner(_it, _timer, _func=func):        setup()        _t0 = _timer()        for _i in _it: _func()        _t1 = _timer()        return _t1 - _t0    return inner

我们可以

timeit
通过一些猴子修补来屈服于我们的意愿:

import timeitimport timedef _template_func(setup, func):    """Create a timer function. Used if the "statement" is a callable."""    def inner(_it, _timer, _func=func):        setup()        _t0 = _timer()        for _i in _it: retval = _func()        _t1 = _timer()        return _t1 - _t0, retval    return innertimeit._template_func = _template_funcdef foo():    time.sleep(1)    return 42t = timeit.Timer(foo)print(t.timeit(number=1))

退货

(1.0010340213775635, 42)

第一个值是时间结果(以秒为单位),第二个值是函数的返回值。

请注意,上面的Monkey-patch仅影响通过 callable
传递

timeit
时的行为。如果传递字符串语句,则必须(类似地)对字符串进行猴子修补。 __
timeit.Timer``timeit.template



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号