欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3?最常用的三種裝飾器語法匯總

 更新時間:2022年06月28日 09:34:22   作者:ChengRuoFei  
這篇文章主要介紹了python3?最常用的三種裝飾器語法總結(jié),本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

python3 最常用的三種裝飾器語法總結(jié)

1.簡述語法

裝飾器也叫函數(shù)裝飾器,主要作用是在不修改原來函數(shù)的代碼情況下(函數(shù)本身不會被修改,執(zhí)行方式也不變化),增加的一個"裝飾"函數(shù),把原來的函數(shù)當(dāng)成一個整體,像傳參一樣給這個函數(shù)使用,并返回這個"函數(shù)"。這個過程中我們增加一些函數(shù)相關(guān)的代碼,當(dāng)函數(shù)被執(zhí)行的時候,就會一起執(zhí)行,相當(dāng)于讓函數(shù)增加了更多的功能。
常用的方面:
1.1為函數(shù)增加日志記錄功能:許多函數(shù)寫的時候,并沒有寫日志記錄功能,通過統(tǒng)一添加日志記錄的裝飾器,就無需更改代碼,從而實現(xiàn)記錄的功能。
1.2為函數(shù)實現(xiàn)驗證功能:函數(shù)執(zhí)行的時候,增加驗證是否合規(guī)的裝飾器,這是一些安全的措施,有時候非常必要。
1.3補救函數(shù)功能:項目結(jié)束后,發(fā)現(xiàn)重大BUG,可以通過過增加裝飾器的方式修復(fù),大量降低工作量。

2.不帶參數(shù)的函數(shù)的裝飾器

理解:@符號就是寫一個裝飾器,最基本的裝飾器,就是寫一個函數(shù),并返回一個傳入的參數(shù)。本質(zhì)就是把整個函數(shù)當(dāng)成了參數(shù),并返回,這個過程沒有執(zhí)行函數(shù),只增加了一個描述信息,如:國家。

def mycountry(m):
    country = "china"
    print(country)
    return m
 
@mycountry
def myname():
    name = "chengruofei"
    print(name)
    return name
myname()

執(zhí)行結(jié)果:

python myname.py 
china
chengruofei

備注:
把@符號理解成省略了第一步的賦值,會不會豁然開朗:
myname = mycountry(myname)
myname()

3.帶參數(shù)的函數(shù)的裝飾器

**理解:**只需要在裝飾器函數(shù)中,增加一個函數(shù),并且里面一定要組合傳入的“兩個參數(shù)”為新的函數(shù),此時返回值就變成了構(gòu)造的函數(shù)。

def mycountry(m):
    country = "china"
    print(country)
    def myb(bb):
        m(bb)
        print("TEST boy")
    return myb
    
@mycountry
def myname(b):
    name = "chengruofei"
    print(name)
    print("I am a :",b)
    return name
myname("boy")

執(zhí)行結(jié)果:

china
chengruofei
('I am a :', 'boy')
TEST boy

備注:
通過裝飾器的函數(shù)返回值,就丟失了。

4.帶參數(shù)的裝飾器

**理解:**本來裝飾器是沒有參數(shù)的,參數(shù)是根據(jù)函數(shù)的定義與否去設(shè)定的。但是有時候裝飾器是個復(fù)雜的函數(shù),集合了大量的功能,就需要帶入?yún)?shù)去執(zhí)行合適的裝飾器函數(shù)。只需要在原本的解釋器外層加上一層函數(shù),并將中間層函數(shù)作為整體返回。

def myID(i):
    if i == 'mycountry':
       def mycountry(m):
           country = "china"
           print(country)
           def myb(bb):
               m(bb)
               print("TEST boy")
           return myb
       return mycountry 
    else:
       def myschool(m):
           school = "shijiazhuangjisuanjizhiyejishuxueyuan"
           print("I graduated from ",school)
           def myb(bb):
               m(bb)
               print("TEST boy")
           return myb
       return myschool
@myID('myschool')
def myname(b):
    name = "chengruofei"
    print(name)
    print("I am a :",b)
    return name
myname("boy")

執(zhí)行結(jié)果:

('I graduated from ', 'shijiazhuangjisuanjizhiyejishuxueyuan')
chengruofei
('I am a :', 'boy')
TEST boy

到此這篇關(guān)于python3 最常用的三種裝飾器語法總結(jié)的文章就介紹到這了,更多相關(guān)python3裝飾器語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中五種列表拷貝的方法

    Python中五種列表拷貝的方法

    這篇文章主要介紹了Python中五種列表拷貝的方法,在Python中,我們經(jīng)常會遇到需要拷貝列表的情形,下面針對常用的列表拷貝方法進行介紹和總結(jié),希望可以給大家?guī)砀喔行缘恼J識
    2022-02-02
  • python基礎(chǔ)教程之csv文件的寫入與讀取

    python基礎(chǔ)教程之csv文件的寫入與讀取

    CSV即逗號分隔值(也稱字符分隔值,因為分隔符可以不是逗號),是一種常用的文本格式,用以存儲表格數(shù)據(jù),包括數(shù)字或者字符,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)教程之csv文件的寫入與讀取的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python使用re模塊實現(xiàn)信息篩選的方法

    Python使用re模塊實現(xiàn)信息篩選的方法

    這篇文章主要介紹了Python使用re模塊實現(xiàn)信息篩選的方法,結(jié)合實例形式分析了Python正則re模塊進行信息篩選操作的相關(guān)實現(xiàn)技巧及相關(guān)函數(shù)使用技巧,需要的朋友可以參考下
    2018-04-04
  • Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明

    Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明

    這篇文章主要介紹了Python爬蟲:Request Payload和Form Data的簡單區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python+Selenium實現(xiàn)一鍵摸魚&采集數(shù)據(jù)

    Python+Selenium實現(xiàn)一鍵摸魚&采集數(shù)據(jù)

    將Selenium程序編寫為 .bat 可執(zhí)行文件,從此一鍵啟動封裝好的Selenium程序,省時省力還可以復(fù)用,豈不美哉。所以本文將利用Selenium實現(xiàn)一鍵摸魚&一鍵采集數(shù)據(jù),需要的可以參考一下
    2022-08-08
  • Python常用的文件及文件路徑、目錄操作方法匯總介紹

    Python常用的文件及文件路徑、目錄操作方法匯總介紹

    這篇文章主要介紹了Python常用的文件及文件路徑、目錄操作方法匯總介紹,本文集合了最常用的一些文件和目錄操作函數(shù),并一一介紹它們的作用,需要的朋友可以參考下
    2015-05-05
  • 用python實現(xiàn)一個文件搜索工具

    用python實現(xiàn)一個文件搜索工具

    大家好,本篇文章主要講的是用python實現(xiàn)一個搜索工具,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python基礎(chǔ)之標準庫和常用的第三方庫案例教程

    Python基礎(chǔ)之標準庫和常用的第三方庫案例教程

    這篇文章主要介紹了Python基礎(chǔ)之標準庫和常用的第三方庫案例教程,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 利用Python字符畫生成甜心教主

    利用Python字符畫生成甜心教主

    字符畫是一系列字符的組合,我們可以把字符看作是比較大塊的像素,一個字符能表現(xiàn)一種顏色,字符的種類越多,可以表現(xiàn)的顏色也越多,圖片也會更有層次感。?本文將利用Python字符畫繪制一個甜心教主王心凌,需要的可以參考一下
    2022-05-05
  • Python基于回溯法子集樹模板解決全排列問題示例

    Python基于回溯法子集樹模板解決全排列問題示例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決全排列問題,簡單描述了全排列問題并結(jié)合實例形式分析了Python使用回溯法子集樹模板解決全排列問題的具體步驟與相關(guān)操作注意事項,需要的朋友可以參考下
    2017-09-09

最新評論