【Python3】使用AOP的方法,计算某某函数运行的时长

软件和网站开发以及相关技术探讨
回复
215317196
帖子: 49
注册时间: 2008-06-10 10:52
联系:

【Python3】使用AOP的方法,计算某某函数运行的时长

#1

帖子 215317196 » 2012-11-23 11:48

使用timeit()函数,记录其他函数的运行时间。

代码: 全选

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from random import random
import time
import functools

def timeit(func):
    @functools.wraps(func)
    def wrapper(arg):
        st = time.time()
        func_re = func(arg)
        et = time.time()
        print('used:', et-st)
        return func_re
    return wrapper

@timeit
def foo(n):
    for x in range(n):
        pass
    return 'My name is foo()'.center(40, '-')

Re = foo(1000000)
print(Re)

代码: 全选

运行结果:
used: 0.0625
------------My name is foo()------------
我的问题就是,当foo()函数的参数是未知的,或是一个递归函数,那timeit()函数就没有用了。
怎么打造一个万能的timeit函数啊!
EasY酱
帖子: 2
注册时间: 2012-12-02 14:17
系统: ubuntu12.04 LTS;win8

Re: 【Python3】使用AOP的方法,计算某某函数运行的时长

#2

帖子 EasY酱 » 2012-12-02 14:43

不会。。我才刚入门,都看不懂你的写的。。只是想问下@符号有什么用啊?难道是注解?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 【Python3】使用AOP的方法,计算某某函数运行的时长

#3

帖子 枫叶饭团 » 2012-12-02 16:24

装饰器,面向切面编程
回复