您好,登錄后才能下訂單哦!
Python 裝飾器
一、裝飾器定義
二、裝飾器知識儲備
三、高階函數
1.高階函數定義:
2.高階函數的示范
3.高階函數的總結
四、函數嵌套
五、閉包
Python 裝飾器
一、裝飾器定義
裝飾器本質就是函數,功能是為其他函數添加附加功能
原則:
1)不修改被修飾函數的源代碼
2)不修改被修飾函數的調用方式
二、裝飾器知識儲備
裝飾器 = 高階函數 + 函數嵌套 + 閉包
三、高階函數
1.高階函數定義:
函數接受的參數是一個函數名
函數的返回值是一個函數名
滿足上述條件任意一個都可以稱之為高階函數
2.高階函數的示范
把函數當做參數傳給高階函數
import time
def foo():
time.sleep(1)
print('你好劉力菲')
def test(func):
print(func)
start_time = time.time()
func()
stop_time = time.time()
print('函數運行時間是 %s' % (stop_time - start_time))
foo()鄭州人流多少錢 http://www.hnmt120.com/
test(foo)
可以看到foo函數又在test函數中執行了一遍
3.高階函數的總結
函數接受的參數是一個函數名
作用:在不修改函數源代碼的前提下,為函數添加新功能
不足:會改變函數的調用方式
函數的返回值是一個函數名
作用:不修改函數的調用方式
不足:不能添加新功能
四、函數嵌套
函數嵌套就是在函數里面在定義函數
def func():
pass
def func1():
pass
def func2():
pass
pass
五、閉包
在一個外函數中定義了一個內函數,內函數里運用了外函數的臨時變量,并且外函數的返回值是內函數的引用。這樣就構成了一個閉包
例子
def func(a):
aa=11
def func1():
c=a+aa
print(c)
return func1
使用閉包的過程中,一旦外函數被調用一次返回了內函數的引用,雖然每次調用內函數,是開啟一個函數執行過后消亡,但是閉包變量實際上只有一份,每次開啟內函數都在使用同一份閉包變量
def outer(x):
def inner(y):
nonlocal x
x+=y
return x
return inner
a=outer(100)
print(a(50))
print(a(100))
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。