• 函数获取自身的函数名字 + 函数运行时间计算和统计


    1.函数

    import sys
    
    
    class Callcount01:
        def __init__(self, func):
            self.func = func
            self.call_num = 0
    
        def __call__(self, *args, **kwargs):
            self.call_num += 1
            print('self.call_num is: {} {}'.format(self.call_num, self.func.__name__))  #这是利用类装饰器的方法
            return self.func(*args, **kwargs)
    
    
    @Callcount01
    def call_test():
        print('----- in call_test, my func name: {}'.format(sys._getframe().f_code.co_name))   #这是第二种
    
    
    call_test()
    
    call_test()

    参考:https://www.cnblogs.com/dflblog/p/11399573.html

    2. 函数运行时间计算和统计

    # todo: record the real runtine by use this decorator
    import time
    import functools
    
    
    def my_decorator(func):
        print('begin my_decorator')
    
        @functools.wraps(func)
        def my_wrapper(*args, **kwargs):
            print('begin my_wrapper')
            start_time = time.perf_counter()
            func(*args, **kwargs)
            end_time = time.perf_counter()
            print('function: {} , runtime: {} .'.format(func.__name__, (end_time - start_time)))
        return my_wrapper
    
    @my_decorator   ### 定义函数前用这个装饰器装饰一下,可以统计函数的运行时间
    def greet(name):
        print('hello from greet: {}'.format(name))
        time.sleep(3)
    
    
    greet('xiaowei')
    print(greet.__name__)
    用一个例子来演示会更加清晰
  • 相关阅读:
    如何导出API文档,没有你做不到,只有你想不到!
    Oracle 数据库数据排名函数:rank() 和dense_rank() 。
    第二次绩效评估
    检查博客
    “E记”Alpha版使用说明
    绩效评估
    第一个冲刺周期意见评论
    第一个冲刺周期意见汇总
    第一次冲刺会议评审总结
    软件工程概论第一个冲刺周期
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/14354723.html
Copyright © 2020-2023  润新知