黑猴子的家 python 裝飾器實現的迭代過程

2021-09-11 16:31:18 字數 2342 閱讀 4913

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是用來編寫應用程式的高階程式語言。當你用一種語言開始作真正的軟體開發時,你除了編寫 外,還需要很多基本的已經寫好的現成的東西,來幫助你加快開發進度。比...