日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础装饰器_Python基础 装饰器及练习

發布時間:2025/3/20 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础装饰器_Python基础 装饰器及练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python視頻教程講解裝飾器

推薦免費:Python視頻教程

裝飾器概念

裝飾器,說白了,就是用來裝飾函數的一個函數。

裝飾器遵循 開放封閉原則、依賴倒置原則,這兩個原則概念,自行百度下,

裝飾器長啥樣def wrapper(f):

def inner(*args,**kwargs):

ret = f(*args,**kwargs)

return ret

return inner

上述代碼是裝飾器的固定格式

調用裝飾器@wrapper # 簡稱語法糖

def test():

print(1)

test()

@wrapper是調用裝飾器,相比于wrapper(test()),更節省代碼,更美觀。可能你看到這里就不懂了,為啥要@wrapper? 調用函數不是wrapper()?

其實吧,你要我說,我也不知道,我就知道,這樣寫更簡單。直接在要裝飾的函數前@wrapper即可

以一個小例子快速看懂裝飾器def wrapper(f):

print(2)

def inner(*args,**kwargs):

print(3)

ret = f(*args,**kwargs)

print(4)

return ret

return inner

@wrapper

def test():

print(1)

test()

@wrapper == wrapper(test()) 相當于調用裝飾器函數,直接用語法糖@wrapper會更簡便

*args是匹配以位置傳參的參數,**kwargs是匹配按關鍵字傳參的參數,這樣就可以接收所有參數。

wrapper(test)接收值傳給f,在內圈函數中,ret = f(*args,**kwargs)這函數是執行裝飾的函數的代碼。再返回執行的值,最后返回這個函數。此代碼的執行結果為:2

3

1

4

如下圖所示

由此可見

函數inner中,print(3)是執行裝飾函數前的操作, print(4)是執行裝飾函數后的操作。

理解起來可能有些困難。所以最好還是動手試試。

基礎小練習'''1. 默寫裝飾器固定格式

2. 寫一個加減功能的裝飾器

'''

總結

以上是生活随笔為你收集整理的python基础装饰器_Python基础 装饰器及练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。