1.函式
importsysclass
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...