python 裝飾器

裝飾器

在運行原來功能的基礎上,添加一些新的功能蔓姚,如權限的驗證捕虽,日志等

不修改原來的代碼,進行功能的擴展

python裝飾器坡脐,是修改了代碼泄私,python直接運行代碼,不編譯

python裝飾器 用 @函數(shù)名 來表示 被稱為語法糖

下面的代碼中 @ checklogin 就是一個裝飾器
有相對應的函數(shù) checklogin()

    def checklogin(func):
        def inner():
            name= input('name: ')
            pwd = input('wd: ')
            if name=='qw' and pwd =='123':
                func()
            else :
                print('重新登錄')
        return inner

                 # 程序加載到這就先把save當成參數(shù)傳進checklogin
    @checklogin #相當于 save=checklogin(save) 
     # 執(zhí)行一次checklogin外部函數(shù) 得到返回inner在加載save() 
    def save():
        print('save......')

    def delete():
        print('delete/./////')

    def update():
        print('update......')
    def select():
        print('select........')

    save()# 調(diào)用save()相當于調(diào)用checklogin方法里的內(nèi)部inner()方法备闲,
          #  先運行inner()方法晌端,在運行自身所代表的方法

    update()

多個裝飾器

即一個函數(shù)上面有兩個或以上的裝飾器,運行順序如下:

多個裝飾器運行順序.JPG
如果第一個裝飾器判斷不成立恬砂,第二個裝飾器就不再執(zhí)行咧纠,
帶參數(shù)的裝飾器
    def ha(num):
        def check(func):
            def inner1():
                if num>2:
                    age = input('age : ')           
                    if age=='20':
                         return func()
                    else:
                        print('age error ...')
                else:
                    print('?????')

            return inner1
        return check
    # 裝飾器帶參數(shù),需要再寫一層函數(shù)用來傳參觉既,里面的函數(shù)可以根據(jù)參數(shù)做出邏輯判斷
    # 在原有的基礎上設置外部變量惧盹,即寫一層函數(shù),并返回原來基礎上的外部函數(shù)名
    @ha(4) 
    def add():
        print('+++++++')
    add()
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞪讼,一起剝皮案震驚了整個濱河市钧椰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌符欠,老刑警劉巖嫡霞,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異希柿,居然都是意外死亡诊沪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門曾撤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來端姚,“玉大人,你說我怎么就攤上這事挤悉〗ヂ悖” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昏鹃。 經(jīng)常有香客問我尚氛,道長,這世上最難降的妖魔是什么洞渤? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任阅嘶,我火速辦了婚禮,結果婚禮上载迄,老公的妹妹穿的比我還像新娘讯柔。我一直安慰自己,他們只是感情好宪巨,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布磷杏。 她就那樣靜靜地躺著溜畅,像睡著了一般捏卓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慈格,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天怠晴,我揣著相機與錄音,去河邊找鬼浴捆。 笑死蒜田,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的选泻。 我是一名探鬼主播冲粤,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼页眯!你這毒婦竟也來了梯捕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤窝撵,失蹤者是張志新(化名)和其女友劉穎傀顾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碌奉,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡短曾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赐劣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫉拐。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖魁兼,靈堂內(nèi)的尸體忽然破棺而出婉徘,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布判哥,位于F島的核電站献雅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏塌计。R本人自食惡果不足惜挺身,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锌仅。 院中可真熱鬧章钾,春花似錦、人聲如沸热芹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伊脓。三九已至府寒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間报腔,已是汗流浹背株搔。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纯蛾,地道東北人纤房。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像翻诉,于是被迫代替她去往敵國和親炮姨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 假以時日碰煌,我相信裝飾器一定會成為Python這門編程語言一個更加強大的功能舒岸。到目前為止,我覺得到我所看到的有關介紹...
    TypingQuietly閱讀 5,425評論 2 71
  • 呵呵拄查!作為一名教python的老師吁津,我發(fā)現(xiàn)學生們基本上一開始很難搞定python的裝飾器,也許因為裝飾器確實很難懂...
    TypingQuietly閱讀 19,551評論 26 186
  • 原文出處: dzone 譯文出處:Wu Cheng(@nullRef) 1. 函數(shù) 在python中堕扶,函數(shù)通過...
    DraculaWong閱讀 521評論 0 3
  • 裝飾器簡介 在Python中碍脏,裝飾器屬于“元編程”的類別,“元編程”的主要目的就是創(chuàng)建函數(shù)或者類稍算,并且用它們來操縱...
    小白將閱讀 473評論 0 5
  • 大學生么糊探,趁著沒畢業(yè)钾埂,快出去一次吧河闰。 我從高三畢業(yè)就嚷嚷著出門體驗打工樂趣了。真是幼稚褥紫,打工何來樂趣呢姜性?樂的是經(jīng)驗...
    青門外閱讀 5,245評論 73 262