我覺得你直接說你要做什么比較好,你寫這個代碼,和你的說明好晦澀。
成都創(chuàng)新互聯(lián)公司2013年至今,先為冊亨等服務(wù)建站,冊亨等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為冊亨企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
a()在b()中使用,意思是,a函數(shù)是否被調(diào)用嗎?
使用time.time來統(tǒng)計函數(shù)的執(zhí)行時間,程序只會執(zhí)行一次,存在很大的隨機因素。
timtit包就可以重復(fù)執(zhí)行函數(shù)多次,然后將多次執(zhí)行結(jié)果取平均值。相比起來更優(yōu)。
然而程序執(zhí)行時間很大程度還受計算機性能的影響,衡量程序好壞更靠譜的手段是計算時間復(fù)雜度。
def around(func): @functools.wraps(func) def wrapper(*args, **kwargs): print('begin call : %s()' % func.__name__) r = func(*args, **kwargs) #在這行執(zhí)行了func,如果有print等語句就打印了 print('end call :%s()' % func.__name__) ret...
Python: 測試函數(shù)是否被調(diào)用
# helper class defined elsewhere
class CallLogger(object):
def __init__(self, meth):
self.meth = meth
self.was_called = False
def __call__(self, code=None):
self.meth()
self.was_called = True
然后assert CallLogger的was_called為True就行了。但是這樣的Callable不是個函數(shù):
isinstance(object, types.FunctionType) # Callable will be False
對于這種Callable獲取參數(shù)個數(shù)需要用:
inspect.getargspec(fn.__call__)
arg1是位置參數(shù),調(diào)用時必須傳入數(shù)值(排除:B),位置參數(shù)傳入時順序要正確,且不能放在關(guān)鍵字參數(shù)的后面(排除:D),余:AC