zoukankan      html  css  js  c++  java
  • 函数获取自身的函数名字 + 函数运行时间计算和统计

    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__)
    用一个例子来演示会更加清晰
  • 相关阅读:
    [USACO18DEC]Fine Dining
    [USACO18DEC]Cowpatibility(容斥 or bitset优化暴力)
    [P2387魔法森林
    P4172 [WC2006]水管局长
    P2486 [SDOI2011]染色
    P3950部落冲突
    P4332三叉神经树
    莫比乌斯反演习题总结
    牛客 斐波那契数列问题的递归和动态规划3
    牛客 统计和生成所有不同的二叉树
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/14354723.html
Copyright © 2011-2022 走看看