修飾符,比如說
創(chuàng)新互聯(lián)網(wǎng)站建設公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,網(wǎng)站制作、成都網(wǎng)站設計,塑造企業(yè)網(wǎng)絡形象打造互聯(lián)網(wǎng)企業(yè)效應。
class A:
@staticmethod
def m(self):
pass
就相當于
class A:
def m(self):
pass
m = staticmethod(m)
其實就是一調(diào)用一個函數(shù)參數(shù)為下行的變量,并且替換它
擴展資料:
函數(shù)修飾符
@用做函數(shù)的修飾符,可以在模塊或者類的定義層內(nèi)對函數(shù)進行修飾,出現(xiàn)在函數(shù)定義的前一行,不允許和函數(shù)定義在同一行。
一個修飾符就是一個函數(shù),它將被修飾的函數(shù)作為參數(shù),并返回修飾后的同名函數(shù)或其他可調(diào)用的東西。
在Python的函數(shù)中偶爾會看到函數(shù)定義的上一行有@functionName的修飾,當解釋器讀到@這樣的修飾符的時候會優(yōu)先解除@后的內(nèi)容,直接就把@的下一行的函數(shù)或者類作為@后邊函數(shù)的參數(shù),然后將返回值賦給下一個修飾的函數(shù)對象。
參考資料來源:百度百科-Python (計算機程序設計語言)
python函數(shù)修飾符@ 修飾符 ‘@’符號用作函數(shù)修飾符是python2.4新增加的功能,修飾符必須出現(xiàn)在函數(shù)定義前一行,不允許和函數(shù)定義在同一行。也就是說@A def f(): 是非法的。 只可以在模塊或類定義層內(nèi)對函數(shù)進行修飾,不允許修修飾一個類。一個修飾符就是一個函數(shù),它將被修飾的函數(shù)做為參數(shù),并返回修飾后的同名函數(shù)或其它可調(diào)用的東西。 本質(zhì)上講,裝飾符@類似于 回調(diào)函數(shù) ,把其它的函數(shù)(暫且稱為目的參數(shù),后面緊接著的函數(shù))作為自己的入?yún)ⅲ谀康暮瘮?shù)執(zhí)行前,執(zhí)行一些自己的操作, 比如:計數(shù)、打印一些提示信息等,然后返回目的函數(shù)。下面列舉一個簡單的例子。
創(chuàng)建函數(shù)修飾符的規(guī)則:
(1)修飾符是一個函數(shù)
(2)修飾符取被修飾函數(shù)為參數(shù)
(3)修飾符返回一個新函數(shù)
(4)修飾符維護被維護函數(shù)的簽名
例子1: 被修飾函數(shù)不帶參數(shù)
運行結(jié)果:
例子2: 使用functools模塊提供的修改函數(shù)屬性的方法wraps
運行結(jié)果:
可見test1的函數(shù)名稱變了,如果某些代碼用到就會出問題,可以使用functools模塊提供的修改函數(shù)屬性的方法wraps
運行結(jié)果:
例子3: 被修飾函數(shù)帶參數(shù)
運行結(jié)果:
例子4: 修飾符帶參數(shù) ,需要比上面例子多一層包裝
運行結(jié)果:
【@】符號在python中是裝飾器的意思。
裝飾器對一個可調(diào)用對象(函數(shù)、方法、類等等)進行裝飾,它返回的也是一個可調(diào)用對象。
一般情況下,裝飾器是對被裝飾對象的修飾與增強。用現(xiàn)實事物類比的話,可以類比為中間商:中間商不生產(chǎn)產(chǎn)品,它將工廠生產(chǎn)的產(chǎn)品進行包裝、運輸后再銷售給顧客。裝飾器不實現(xiàn)核心功能,它提供對目標函數(shù)調(diào)用的封裝與強。
它裝飾的方法返回值是一個對象(BillList、Bill、List[BillDetail]等),而裝飾器【enabled_cache】的作用如它的名稱一樣:使用緩存。可以看到,這個裝飾器函數(shù)中定義了一個函數(shù)【wrapper】然后將這個wrapper作為返回值。這樣,原本調(diào)用ProductionBos.bill_with_last_week的代碼就不需要做任何改變就能享受到ProductionBos.bill_with_last_week原有的功能(得到一個BillList對象)和enabled_cache提供的附加功能(如果該對象有緩存,就不再從數(shù)據(jù)庫查詢)。
當前標題:關(guān)于函數(shù)修飾符python的信息
分享網(wǎng)址:http://www.chinadenli.net/article20/doojojo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、、網(wǎng)站設計、品牌網(wǎng)站設計、App開發(fā)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)