話不多說先上代碼顿乒,簡單粗暴解釋用法
def a(fun):
fun()
@a
def fn():
print(12)
執(zhí)行以上代碼,得到輸出
12
這里解釋了@解釋器的用法,即將函數(shù)作為修飾器函數(shù)的參數(shù)傳入何什。
嘗試了一下使用兩個(gè)修飾器的情況,使用方法如下
def a(fun):
print('a')
fun()
return fun
def b(fun):
print('b')
fun()
@b
@a
def fn():
print(12)
輸出為
a
12
b
12
嘗試到這里等龙,會很自然想到為什么需要@修飾符的存在处渣,因?yàn)楸旧?python 的函數(shù)就可以將函數(shù)作為參數(shù)傳入伶贰,比如將第一個(gè)例子改為如下代碼:
def a(fun):
fun()
def fn():
print(12)
a(fn)
查了一些資料,原因應(yīng)該和 aop 的思想有關(guān)霍比,沒有深究幕袱,埋個(gè)坑,有時(shí)間了深挖悠瞬。