python3装饰器functools模块

128 阅读1分钟
#!/usr/bin/python
# -*- coding:utf-8 -*-
import time
import functools

#python闭包打印日志功能
def log_wraper(func):
    
    #由于被装饰的函数需要传参,这里加上*args,**kwargs
    @functools.wraps(func)
    def inner():
        start_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
        func()
        end_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
        print("logging: func:{} runs from {} to {}".format(func.__name__,start_time,end_time))

    return inner


#斐波那契额数列--for循环
def fib_yield_for():
    a,b = 0,1
    for _ in range(10):
        a,b = b,a+b
        print(a,end=' ')


if __name__ == '__main__':

    myfun = log_wraper(fib_yield_for)
    myfun()