code 高階函式 迭代裝飾器一
def deco(func):
start_time = time.time()
func()
stop_time = time.time()
print("the func run time is %s" %(stop_time - start_time))
def deco1(func):
star_time = time.time()
return func
stop_time = time.time()
print("the func run time is %s" %(stop_time - start_time))
def t1():
time.sleep(3)
print("in the t1")
def t2():
time.sleep(3)
print("in the t2")
def t3():
time.sleep(3)
print("in the t3")
#雖然新增了功能,但是修改呼叫方式
deco(t1)
#第一種方式的高階函式
t1 = deco(t1)
print(t1)
# 沒有修改呼叫方式,但是也沒有新增功能
t2 = deco1(t2)
print(t2)
列印
in the t1
the func run time is 3.0
in the t1
the func run time is 3.0
none
code -> 高階函式 + 巢狀函式 => 裝飾器方式一
def timer(funct):
def deco():
start_time = time.time()
funct()
stop_time = time.time()
print("the func run time is %s" % (stop_time - start_time))
return deco
t3 = timer(t3)
t3()
列印
in the t3
the func run time is 3.0
code -> 高階函式 + 巢狀函式 => 裝飾器方式二
def timer(funct):
def deco():
start_time = time.time()
funct()
stop_time = time.time()
print("the func run time is %s" % (stop_time - start_time))
return deco
@timer #t4 = timer(t4)
def t4():
time.sleep(1)
print("in the t4")
t4()
列印
in the t4
the func run time is 1.0
code -> 高階函式 + 巢狀函式 => 裝飾器方式三
def timer(funct):
def deco(*args,**kwargs):
start_time = time.time()
funct(*args,**kwargs)
stop_time = time.time()
print("the func run time is %s" % (stop_time - start_time))
return deco
@timer #t5 = timer(t5)
def t5(name):
time.sleep(1)
print("in the t5 %s "%name)
t5('hei hou zi')
列印
in the t5 hei hou zi
the func run time is 1.0
黑猴子的家 python 裝飾器
裝飾器本質是函式,裝飾其他函式 就是為其他函式新增附加功能 1 不能修改被裝飾的函式的源 2 不能修改被裝飾的函式的呼叫方式 3 裝飾器對它被裝飾的韓式是完全透明的 1 函式即 變數 2 高階函式 3 巢狀函式code import time 裝飾器 def timmer func def warp...
黑猴子的家 python 裝飾器之高階函式
1 把乙個函式名當做實參傳給另外乙個函式,在不修改被裝飾的函式源 的情況下 為其新增功能 2 返回值中包含函式名,不修改函式的呼叫方式code 情況1 import time def bar time.sleep 3 print in the bar def t1 func print func s...
黑猴子的家 Python 簡介
總的來說,程式語言各有千秋。c語言是可以用來編寫作業系統的貼近硬體的語言,所以,c語言適合開發那些追求執行速度 充分發揮硬體效能的程式。而python是用來編寫應用程式的高階程式語言。當你用一種語言開始作真正的軟體開發時,你除了編寫 外,還需要很多基本的已經寫好的現成的東西,來幫助你加快開發進度。比...