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