亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python 裝飾器 初步認(rèn)識(shí)

系統(tǒng) 1524 0
首先理解Python的函數(shù)能像普通的對(duì)象一樣能作為參數(shù)傳遞給其他函數(shù),可以被賦值給其他變量,可以作為返回值,可以被定義在另外一個(gè)函數(shù)內(nèi)。
前面的文章已經(jīng)對(duì)閉包做了介紹,再次進(jìn)行延伸和理解一下裝飾器,主要用于不在改變?cè)创a的情況下進(jìn)行添加功能,裝飾器利用閉包來(lái)實(shí)現(xiàn),一般和閉包一起使用。
裝飾器返回一個(gè)函數(shù)對(duì)象,簡(jiǎn)單理解在原函數(shù)功能上又加入新功能并返回一個(gè)和原函數(shù)名相同的函數(shù)對(duì)象。
            
              def funcout(func):    
	def funcIn(x,y):       
 		func(x,y)#外部函數(shù)傳入的參數(shù)test函數(shù)在內(nèi)部函數(shù)的調(diào)用        
		 addf()#新增功能函數(shù)    
	 return funcIn
 #閉包 外部無(wú)法直接訪問(wèn)內(nèi)部函數(shù)  將一個(gè)函數(shù)當(dāng)成參數(shù)傳遞進(jìn)來(lái) funcout(test)調(diào)用時(shí)返回一個(gè)函數(shù)對(duì)象 用一個(gè)變量接收函數(shù)對(duì)象的地址比如假設(shè)為ss
 #ss(1,2) 調(diào)用的內(nèi)部函數(shù)  func是傳進(jìn)來(lái)的函數(shù)test 此時(shí)func調(diào)用傳入的函數(shù)  test需要兩個(gè)參數(shù) 需要在內(nèi)部函數(shù)中傳參
def addf():    
	print("新增功能")
def test(a,b):    
	print("a=%s,b=%s"%(a,b))
ff =funcout(test)
ff(1,2)#調(diào)用函數(shù) 


            
          
            
              在上面代碼將函數(shù)test 進(jìn)行替換成下列調(diào)用方式 就是加了一個(gè)@符號(hào) 實(shí)現(xiàn)裝飾器寫(xiě)法更簡(jiǎn)單
@funcout # 裝飾器 相當(dāng)于 test=func(test)
def test(a,b):    
	print("a=%s,b=%s"%(a,b))
test(1,2)#調(diào)用函數(shù)test 為裝飾器的函數(shù) 增加新的功能之后的test

            
          
通用裝飾器函數(shù) 對(duì)可變參數(shù)的處理
            
              def funcout(func):   
 	def funcIn(*args,**kwargs)        
		 func(*args,**kwargs) #沒(méi)有返回值時(shí)使用       
		 addf()       
        	return funcIn(*args,**kwargs)       #內(nèi)部函數(shù)的返回值 防止傳入的函數(shù)有返回值  有返回值時(shí)使用     	
	return funcIn  

            
          
            
              還可以定義多個(gè)裝飾器 執(zhí)行順序是從里到外的。
@a
@b
@c
def f ():
等效于  f = a(b(c(f)))

            
          
            
            
          

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产亚洲欧美一区二区三区 | 99热最新网站 | 亚洲欧美国产精品久久久 | 99视频精品全部免费免费观 | 久久视频精品a线视频在线观看 | 思99热精品久久只有精品 | 免费一级成人免费观看 | 亚洲欧美日韩在线一区 | 久久www免费人成精品 | 日本不卡免费高清一级视频 | 在线日韩一区 | 9久热久re爱免费精品视频 | 中国欧美一级毛片免费 | 久久久欧美综合久久久久 | 久久青草免费免费91线频观看 | 国产原创巨作精品 | 国产成人精品.一二区 | 国产99久久精品一区二区 | 鲁一鲁射一射 | 在线看片亚洲 | 亚洲精品久久久久影院 | 成年ssswww中国女人 | 五月婷婷免费视频 | 又粗又大的机巴好爽视频视频 | 99久久日本一区二区波多野结衣 | 有码中文字幕在线观看 | 国产精品久久久久影视青草 | 羞羞免费网站 | 国产第九页| 免费视频网站在线观看黄 | 四虎免费入口 | 亚洲 另类色区 欧美日韩 | 色狠狠狠色噜噜噜综合网 | 777xxxxx欧美| 激情综合五月亚洲婷婷 | 国产精品美女一级在线观看 | 色综合激情 | 亚洲精品久久一区二区无卡 | 亚洲国产成人精品女人久久久 | 国产欧美综合在线一区二区三区 | 97精品高清一区二区三区 |