1.被裝飾函式 支援 不管有沒有返回值都需要支援,
2. 被裝飾函式支援 ,不管有多少引數 ,裝飾器都要支援
滿足了就可以認為是全能了, 實際我們結合前面兩個章節 就可以得出 , 請看下邊的** :
def test(func):
def test_in(*args,**kwargs):
print ("log 日誌為 ")
a=func(*args,**kwargs)
return a
return test_in
@test
def f1():
return "被裝飾函式"
@test
def f2():
print("沒有返回值函式")
@test
def f3(a):
return a
@test
def f4(a,b,c):
return a+b+c
print (f1()) # 有返回值
print (f2()) # 沒有返回值
print (f3(3)) # 有返回值 ,並且傳入乙個引數
print(f4(1,2,3))# 有返回值 並且傳入多個引數
python高階 裝飾器
1.1 裝飾器 裝飾器的作用 在不改變原函式的情況下給函式增加功能 裝飾器由閉包和語法糖組成 1.2 閉包 閉包特點 外部函式巢狀內部函式 內部函式可以訪問並且儲存外部函式的變數 外部函式返回內部函式的引用 有以上三個特點的函式就稱為閉包 閉包的例子 def func1 a def func2 b ...
python高階 裝飾器
1.1 裝飾器 裝飾器的作用 在不改變原函式的情況下給函式增加功能 裝飾器由閉包和語法糖組成 1.2 閉包 閉包特點 外部函式巢狀內部函式 內部函式可以訪問並且儲存外部函式的變數 外部函式返回內部函式的引用 有以上三個特點的函式就稱為閉包 閉包的例子 def func1 a def func2 b ...
python高階 裝飾器
1.閉包 簡單理解 閉包就是多層函式的巢狀,外層函式的返回值是內層函式的引用。def out func n num 100 def in fucn args,kwargs nonlocal num if n 2 0 裡面沒有修改num的值,直接使用可以,如果變成 num n 則會報錯,因此需要使用前...