函式獲取自身的函式名字 函式執行時間計算和統計

2022-03-02 09:49:23 字數 1320 閱讀 2904

1.函式

import

sysclass

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

defcall_test():

print('

----- in call_test, my func name: {}

'.format(sys._getframe().f_code.co_name)) #這是第二種

call_test()

call_test()

參考:2. 函式執行時間計算和統計

#

todo: record the real runtine by use this decorator

import

time

import

functools

defmy_decorator(func):

print('

begin my_decorator')

@functools.wraps(func)

print('')

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_decorator ### 定義函式前用這個裝飾器裝飾一下,可以統計函式的執行時間

defgreet(name):

print('

hello from greet: {}

'.format(name))

time.sleep(3)

greet(

'xiaowei')

print(greet.__name__)

函式名字改編

使用dependency看dll的匯出函式的名字,會發現有一些有意思的東西,這大多是和編譯dll時候指定dll匯出函式的匯出符有關係。當你使用extern c 的情況下 stdcall會使匯出函式名字前面加乙個下劃線,後面加乙個 再加上引數的位元組數,比如 fun 4就是4個位元組 fastcall...

C 通過函式名字串執行相應的函式

如果 中函式過多,那麼通過函式名字串執行相應的函式會更加方便,也會使 更為簡單。在c 中,通過函式名字串執行相應的函式這項功能是在system.reflection命名空間中實現的,使用的函式為getmethod。若要使用此功能只需如下三步。一 getmethod函式定義在虛基類type類中,在使用...

獲取當前執行函式和方法的名字

coding utf 8 time 2018 9 11 10 18 author cxa file tool.py software pycharm import sys from functools import wraps import inspect def get method name r...