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

歡迎訪問 生活随笔!

生活随笔

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

python

Python函数的装饰器,两层装饰器和三层装饰器

發布時間:2025/3/20 python 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python函数的装饰器,两层装饰器和三层装饰器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.裝飾器

1.函數裝飾圈的定義

函數裝飾器:一種裝飾函數的函數

2.個人理解兩層函數裝飾器

兩層函數裝飾器個人覺得他其實就是把需要裝飾的函數名丟入形參,然后用一個嵌套的函數對其頭尾進行添加程序,但是不能減少他的程序內容,他的原來程序不變只能增不能減少,然后返回裝飾好的子函數,再全局定義一個變量名與要裝飾的函數名相同名字,并且將裝飾后的函數調用賦予改變量.

1.簡單的例子(無參函數)

#有個函數f1 def f1():print('nick machachong') #我們要對齊裝飾使其輸出打印內容上下都加了'-'線 def f1_deco(f1): #第一步吧變量丟進去def wrapper():#print(50*'-') #我們加的內容#print('nick machachong') #這個等同于f1()#print(50*'-') #我們要加的內容#這是我們需要的打印效果pritn(50*'-')f1()print(50*'-')return wrapper f1 = f1_deco(f1) #前面的f1是變量f1,函數本是f1并未發生變化只是一個變量名接受了f1 f1()?``` -------------------------------------------------- nick machachong -------------------------------------------------- ?``` #另外種寫法 @f1_deco def f1():print('nick machachong') f1() ?``` -------------------------------------------------- nick machachong -------------------------------------------------- ?```

2.關于有參函數

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #如函數 def sum(x,y):print(x+y) #我們要對齊裝飾使其輸出打印內容上下都加了'-'線 def sum_deco(sum):def wrapper(x,y):print("-")sum(x,y)return sum sum() = sum_deco(sum) sum(x,y)#多個值 def sb(x,y,z=2,b=1):print(x,y,z,b) #把他進行封裝 def sb_deco(sb):def wrapper(*args,**kwargs):print('nick machachong')sb(*args,**kwargs)return wrapper sb = sb_deco(sb) sb(1,23,2,3)

3.對于有返回值的函數式

#有返回值 def sb(x,y,z=2,b=1):return x,y,z,b #對于返回值乘以3 def sb_deco(sb):def wrapper(*args,**kwargs):res = sb(*args,**kwargs)res = list(res)for a in range(len(res)):res[a] = 3*res[a]res = tuple(res)return resreturn wrapper sb = sb_deco(sb) print(sb(2,3,4,5))

4.裝飾圈模板

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def sb(*args,**kwargs):pass #裝飾器模板 def sb_deco(sb):def wrapper(*args,**kwargs):#sb(*args,**kwargs) res = sb(*args,**kwargs) #賦值的時候已經開始調用了所有沒必要在寫一步調用return resreturn wrapper sb = sb_deco(sb) sb(1,23,2,3,12,312,312,3,123)

3.對于三層裝飾器理解

#比如說一個函數為,我們對齊裝飾,打印內容前后上下加'-' def sb():print('i am sb')#裝飾 def sb_deco(sb):def wrapper():print('-'*5)sb()print('-'*5)return wrapper #只時候我們加條件要區分是你輸入還是我輸入的# 只時候我們加條件要區分是你輸入還是我輸入的, 我那邊聰明肯定不是SB def sb_deco(sb):def wrapper():if user == 'you':print('-' * 5)sb()print('-' * 5)elif user == 'i':print('-' * 5)sb()print('這是不可能的')print('-' * 5)return wrapper #這時候我們導入的參數多了個user def user(user):def sb_deco(sb):def wrapper():if user == 'you':print('-' * 5)sb()print('-' * 5)elif user == 'i':print('-' * 5)sb()print('這是不可能的')print('-' * 5)return wrapperreturn sb_deco@user('you') #其中@user('you') 相當于a =user('you') sb = a(sb) def sb(): print('i am sb') sb() #他是對于輸入的值的一層裝飾,判斷他是拿來的

總結

以上是生活随笔為你收集整理的Python函数的装饰器,两层装饰器和三层装饰器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天堂а√在线最新版中文在线 | 中文字幕av无码一区二区三区 | 能看av的网址 | 久久精品国产露脸对白 | 国产高清一区二区三区四区 | 成人a级大片 | 欧美日韩视频免费 | av福利社| www黄色网| 国产精品免费一区二区区 | 色老板最新地址 | 久久久久综合网 | 性色av一区二区三区红粉影视 | 亚洲AV无码精品自拍 | 农村老熟妇乱子伦视频 | 婷婷免费视频 | 五月婷婷俺也去 | 无遮挡裸光屁屁打屁股男男 | 超碰人人cao| www.色人阁.com | 99这里只有 | 精品久久免费观看 | 在线色播 | 进去里在线观看 | 国产主播在线看 | 日产精品久久久久 | 免费污视频在线观看 | 国产自产一区二区 | 超级砰砰砰97免费观看最新一期 | 一区不卡在线 | 欧美日韩一区精品 | 国产91嫩草| 亚洲69视频| 无码人妻精品一区二区三 | 人人精品视频 | 亚洲自拍偷拍色图 | 亚洲精品久久久久久久久 | 欧美日韩偷拍视频 | 黄色免费网站观看 | 亚洲人成影视 | 青青青国产视频 | 一级少妇精品久久久久久久 | 日本二区三区视频 | 69堂在线观看| 中文 欧美 日韩 | 女优色图| 这里只有精品22 | 国产内谢 | 毛片大片| 一级丰满大乳hd高清 | 福利视频h| 激情小说亚洲图片 | 成人动漫在线播放 | 在线视频免费观看你懂的 | 日韩不卡的av| 深夜福利久久 | 欧美日本中文 | 人妻巨大乳hd免费看 | 米奇久久 | 超碰超碰在线 | 中文字幕av在线免费观看 | 欧美日韩一区二区三区不卡 | 天天插天天搞 | 美腿丝袜亚洲综合 | 精品成人一区二区 | 激情五月婷婷丁香 | 香蕉伊人 | 大色av| 亚洲激情视频一区 | 国产亚洲自拍一区 | 亚洲国产精品久久久久久 | 99色在线视频 | 伊人精品综合 | 日本午夜啪啪 | 俺去俺来也在线www色官网 | 国产视频黄色 | 色老板av| 性色av蜜臀av色欲av | 亚洲一级黄色片 | 久爱视频在线 | 被扒开腿一边憋尿一边惩罚 | 91干网 | 色哟哟一区二区三区 | 亚洲第一成年人网站 | 欧美 亚洲 视频 | 亚洲激情图 | 四虎成人精品永久免费av九九 | 欧美日韩中文视频 | 日本少妇大战黑人 | 久久人人添人人爽添人人片 | 国产精品久久久久久久天堂 | www日韩欧美 | 国产欧美亚洲精品 | 色www情 | 欧美v亚洲| 欧日韩一区二区三区 | www.xxx国产 | 国产精品资源在线观看 | 超碰97国产在线 |