'''def decorator(f1):
def f2():
####內部的這個函式就是包裹函式,也就是裝飾器函式
####
return f2
'''def
log(func):
def
print('
call %s():
' % func.__name__
)
#print(locals())
return
func()
#返回函式的執行
#print(func.__name__)
(locals())
##裝飾器中有兩個函式乙個是傳進來的函式,乙個是裝飾器函式,即包裹函式
#裝飾器中返回了兩個函式,乙個是通過引數傳遞進去的函式,另外乙個就是裝飾器的包裹函式,當now = log(now)或@log被執行以後,包裹函式就會在記憶體中開闢乙個空間,而內層空間的變數也會被記錄在內層空間中
#而此時函式還沒有被呼叫,也就是記憶體空間還沒有被**,這也就是裝飾器為什麼能記憶環境的額原因
return
defnow():
print('
2020-2-17')
now =log(now)
#函式now被
now()
裝飾器之類裝飾器
外部的方法至今都玩過了,現在來思索一下的方法這麼裝飾 類方法修飾器 類的方法唯一的特殊點在於,self內部是可以呼叫的,但是在外部卻是隱藏的,那這個怎麼搞 為求穩妥,先定參修飾乙個 def godme fun def godme self,message print before fun self,...
python裝飾器 裝飾器
由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...
python裝飾器 函式裝飾器,類裝飾器
只要實現此 模式,這個obj就叫乙個裝飾器 參考 函式裝飾器 例子 def decorator func def inner args,kwargs print before.res func args,kwargs print after.return res return inner decor...