最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python裝飾器

 更新時間:2019年03月25日 08:56:21   作者:Lockegogo  
這篇文章主要介紹了Python裝飾器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 定義

本質(zhì)是函數(shù),用來裝飾其他函數(shù),為其他函數(shù)添加附加功能

2. 原則

a. 不能修改被裝飾函數(shù)的源代碼
b. 不能修改被裝飾的函數(shù)的調(diào)用方式

3. 實現(xiàn)裝飾器知識儲備

a. 函數(shù)就是變量
b. 高階函數(shù)
    i. 把一個函數(shù)當(dāng)作實參傳給另外一個函數(shù),在不修改被裝飾函數(shù)源代碼情況下為其添加功能
    ii. 返回值中包含函數(shù)名, 不修改函數(shù)的調(diào)用方式
c. 嵌套函數(shù)
 高階函數(shù)+嵌套函數(shù)==》裝飾器

# Author: Lockegogo

user, passwd = 'LK', '130914'
def auth(auth_type):
 print('auth func:', auth_type)
 def outher_wrapper(func):
  def wrapper(*args, **kwargs):
   print('wrapper func:', *args, **kwargs)
   if auth_type == 'local':
    username = input('username:').strip()
    password = input('password:').strip()
    if user == username and password == passwd:
     print('\033[32;1mUser has passed authentication\033[0m')
     res = func(*args, **kwargs)
     return res
    else:
     exit('\033[32;1mInvalid Username or password\033[0m')
   elif auth_type == 'ldap':
    print('ldap,不會')
  return wrapper
 return outher_wrapper

def index():
 print('welcome to index page')
@auth(auth_type='local') # home = outher_wrapper(home)
def home():
 print('welcome to home page')
 return 'from home'
@auth(auth_type='ldap')
def bbs():
 print('welcome to bbs page')

index()
print(home())
bbs()

Decorator

以上所述是小編給大家介紹的Python裝飾器詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • python之流程控制語句match-case詳解

    python之流程控制語句match-case詳解

    這篇文章主要介紹了python之流程控制語句match-case使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • python多線程多并發(fā)啟動appium服務(wù)的實現(xiàn)

    python多線程多并發(fā)啟動appium服務(wù)的實現(xiàn)

    使用Dos命令或者bat批處理來手動啟動appium服務(wù),啟動效率低下,本文主要介紹了python多線程多并發(fā)啟動appium服務(wù)的實現(xiàn),具有一定的 參考價值,感興趣的可以了解一下
    2024-02-02
  • 使用sklearn之LabelEncoder將Label標(biāo)準(zhǔn)化的方法

    使用sklearn之LabelEncoder將Label標(biāo)準(zhǔn)化的方法

    今天小編就為大家分享一篇使用sklearn之LabelEncoder將Label標(biāo)準(zhǔn)化的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Django實現(xiàn)微信小程序支付的示例代碼

    Django實現(xiàn)微信小程序支付的示例代碼

    這篇文章主要介紹了Django實現(xiàn)微信小程序支付的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python字典中g(shù)et()函數(shù)的基本用法實例

    python字典中g(shù)et()函數(shù)的基本用法實例

    在字典內(nèi)置的方法中,想說的方法為get,這個方法是通過鍵來獲取相應(yīng)的值,但是如果相應(yīng)的鍵不存在則返回None,這篇文章主要給大家介紹了關(guān)于python字典中g(shù)et()函數(shù)的基本用法,需要的朋友可以參考下
    2022-03-03
  • python用match()函數(shù)爬數(shù)據(jù)方法詳解

    python用match()函數(shù)爬數(shù)據(jù)方法詳解

    在本篇文章里小編給大家整理了關(guān)于python用match()函數(shù)爬數(shù)據(jù)方法以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • pymysql的簡單封裝代碼實例

    pymysql的簡單封裝代碼實例

    這篇文章主要介紹了pymysql的簡單封裝代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Pytorch GPU顯存充足卻顯示out of memory的解決方式

    Pytorch GPU顯存充足卻顯示out of memory的解決方式

    今天小編就為大家分享一篇Pytorch GPU顯存充足卻顯示out of memory的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 學(xué)python安裝的軟件總結(jié)

    學(xué)python安裝的軟件總結(jié)

    在本篇文章里小編給大家整理了是關(guān)于學(xué)python安裝什么軟件的相關(guān)知識點內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • Python利用卡方Chi特征檢驗實現(xiàn)提取關(guān)鍵文本特征

    Python利用卡方Chi特征檢驗實現(xiàn)提取關(guān)鍵文本特征

    卡方檢驗最基本的思想就是通過觀察實際值與理論值的偏差來確定理論的正確與否。本文將利用卡方Chi特征檢驗實現(xiàn)提取關(guān)鍵文本特征功能,感興趣的可以了解一下
    2022-12-12

最新評論

夏津县| 鹤岗市| 富宁县| 菏泽市| 沙田区| 西乌珠穆沁旗| 湾仔区| 新疆| 五华县| 阳泉市| 密云县| 裕民县| 富锦市| 贡山| 鄯善县| 广安市| 乐业县| 静宁县| 河北区| 元谋县| 阳东县| 沅江市| 洪雅县| 肥西县| 杭锦后旗| 肃南| 醴陵市| 东平县| 辉南县| 武邑县| 吴忠市| 大方县| 定襄县| 蕲春县| 绥化市| 昌都县| 土默特右旗| 海淀区| 筠连县| 屯门区| 长宁区|