亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python新手學習裝飾器

瀏覽:2日期:2022-07-23 09:06:04

python函數式編程之裝飾器

1.開放封閉原則

簡單來說,就是對擴展開放,對修改封閉。

在面向對象的編程方式中,經常會定義各種函數。一個函數的使用分為定義階段和使用階段,一個函數定義完成以后,可能會在很多位置被調用。這意味著如果函數的定義階段代碼被修改,受到影響的地方就會有很多,此時很容易因為一個小地方的修改而影響整套系統的崩潰,所以對于現代程序開發行業來說,一套系統一旦上線,系統的源代碼就一定不能夠再改動了。然而一套系統上線以后,隨著用戶數量的不斷增加,一定會為一套系統擴展添加新的功能。

此時,又不能修改原有系統的源代碼,又要為原有系統開發增加新功能,這就是程序開發行業的開放封閉原則,這時就要用到裝飾器了。

2.什么是裝飾器

裝飾器,顧名思義,就是裝飾,修飾別的對象的一種工具。

所以裝飾器可以是任意可調用的對象,被裝飾的對象也可以是任意可調用對象。

3.裝飾器的作用

在不修改被裝飾對象的源代碼以及調用方式的前提下為被裝飾對象添加新功能。

原則:

1.不修改被裝飾對象的源代碼

2.不修改被裝飾對象的調用方式

目標:

為被裝飾對象添加新功能。

實例擴展:

import time# 裝飾器函數def wrapper(func): def done(*args,**kwargs): start_time = time.time() func(*args,**kwargs) stop_time = time.time() print(’the func run time is %s’ % (stop_time - start_time)) return done# 被裝飾函數1@wrapperdef test1(): time.sleep(1) print('in the test1')# 被裝飾函數2@wrapperdef test2(name): #1.test2===>wrapper(test2) 2.test2(name)==dome(name) time.sleep(2) print('in the test2,the arg is %s'%name)# 調用test1()test2('Hello World')

不含參數實例:

import timeuser,passwd = ’admin’,’admin’def auth(auth_type): print('auth func:',auth_type) def outer_wrapper(func): def wrapper(*args, **kwargs): print('wrapper func args:', *args, **kwargs) if auth_type == 'local': username = input('Username:').strip() password = input('Password:').strip() if user == username and passwd == password: print('033[32;1mUser has passed authentication033[0m') res = func(*args, **kwargs) # from home print('---after authenticaion ') return res else: exit('033[31;1mInvalid username or password033[0m') elif auth_type == 'ldap': print('ldap鏈接') return wrapper return outer_wrapper@auth(auth_type='local') # home = wrapper()def home(): print('welcome to home page') return 'from home'@auth(auth_type='ldap')def bbs(): print('welcome to bbs page'print(home()) #wrapper()bbs()

到此這篇關于Python新手學習裝飾器的文章就介紹到這了,更多相關Python之裝飾器簡介內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: yiren22亚洲综合高清一区 | 久久精品人人做人人爽 | 中国黄色一级 | 日本免费不卡一区 | 337p粉嫩大胆噜噜噜鲁 | 欧美五月婷婷 | 成人免费看黄 | 国产乱码精品一区二区三区网页版 | 2020阿v天堂网手机版 | 精品一久久香蕉国产线看观看下 | 亚洲乱理伦片在线看中字 | 亚洲全网成人资源在线观看 | 黄色片免费看视频 | 国产精品人成人免费国产 | 中国黄色网址大全 | 免费成人| 高清一区二区亚洲欧美日韩 | 亚洲一区二区三区四区五区 | 色综合色狠狠天天久久婷婷基地 | 国产亚洲欧美在线播放网站 | 日产国产精品久久久久久 | 日本淫视频 | 黄色一及毛片 | 免费看的黄色网址 | 特黄a级毛片 | 黄色小视频在线观看 | 国产蜜臀 | 直接看的毛片 | 亚洲精品视频免费看 | 国产在线麻豆精品观看 | 欧美日韩久久毛片 | 国产91在线 | 日本 | 97中文在线| 污片在线观看免费 | 国产啪精品视频网免费 | 免费成人福利视频 | 黄色大片视频 | 国产大秀视频在线一区二区 | 伊人网久久网 | 免费看黄色一级片 | 精品成人免费一区二区在线播放 |