通過傳遞任何傳送進來的引數來支援具有任意引數的任意函式:
def tracer(func, *pargs, **kargs):
print('calling:', func.__name__)
return func(*pargs, **kargs)
def func(a, b, c, d):
return a + b + c + d
print(tracer(func, 1, 2, c=3, d=4))
tracer收集引數,然後以varargs呼叫語法來傳遞它。
返回結果:
('calling:', 'func')
10
對模組計時:
#file mytimer.py
import time
reps = 1000
repslist = range(reps)
def timer(func, *pargs, **kargs):
start = time.clock()
for i in repslist:
ret = func(*pargs, **kargs)
elapsed = time.clock() - start
return (elapsed, ret)
計時指令碼:
#file timeseqs.py
import sys, mytimer
reps = 10000
repslist = range(reps)
def forloop():
res =
for x in repslist:
return res
def listcomp():
return [x + 10 for x in repslist]
def mapcall():
return list(map(lambda x: x + 10, repslist))
def genexpr():
return list(x + 10 for x in repslist)
def genfunc():
def gen():
for x in repslist:
yield x + 10
return list(gen())
print(sys.version)
for test in (forloop, listcomp, mapcall, genexpr, genfunc):
elapsed, result = mytimer.timer(test)
print ('-' * 33)
print ('%-9s: %.5f => [%s...%s]' %
(test.__name__, elapsed, result[0], result[-1]))
返回結果:
2.7.3 (default, apr 10 2012, 23:31:26) [msc v.1500 32 bit (intel)]
---------------------------------
forloop : 1.60391 => [10...10009]
---------------------------------
listcomp : 0.77515 => [10...10009]
---------------------------------
mapcall : 1.73903 => [10...10009]
---------------------------------
genexpr : 1.18348 => [10...10009]
---------------------------------
genfunc : 1.14585 => [10...10009]
返回任意數目的自定義標籤tab
對於自定義標籤,後台給出的數目不確定,需要開發動態載入 上 public class tagslayout extends viewgroup 負責設定子控制項的測量模式和大小 根據所有子控制項設定自己的寬和高 override protected void onmeasure int widthm...
檢查任意數目的整型引數並返回最大值
stdarg巨集 可變引數列表是通過巨集來實現的,這些巨集定義在stdarg.h標頭檔案中,它是標準庫的一部分,這個標頭檔案宣告了乙個型別va list,和三個巨集 va start,va arg,和va end。我們可以宣告乙個型別為va list的變數,與這幾個巨集配合使用,訪問引數的值。檢查任...
最長的含有相同數目的01子串 括號匹配問題
題目 給定乙個字串,字串中只包含 0 和 1 請找到乙個最長的子串,使得其中0和1的數量是相同的 例1 10101010 結果就是其本身 例2 0011110 結果是 0011 擴充套件 給定乙個字串,字串只包含 和 請找出乙個最長的子串,使得該子串滿足括號匹配法則。例1 結果為自身 例2 結果為 ...