python高階高階 6 全能裝飾器的格式寫法05

2021-09-24 06:10:37 字數 644 閱讀 8422

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 則會報錯,因此需要使用前...