Python裝飾器用法示例小結(jié)
本文實(shí)例講述了Python裝飾器用法。分享給大家供大家參考,具體如下:
下面的程序示例了python裝飾器的使用:
示例一:
def outer(fun):
print fun
def wrapper(arg):
result=fun(arg)
print 'over!'
return result
return wrapper
@outer
def func1(arg):
print 'func1',arg
return 'very good!'
response=func1('python')
print response
print func1
運(yùn)行結(jié)果:
<function func1 at 0x02A67D70> func1 python over! very good! <function wrapper at 0x02A67CF0>
示例二:
#!/usr/bin/env python
#coding:utf-8
def Filter(before_func,after_func):
print before_func
print after_func
def outer(main_func):
print main_func
def wrapper(request,kargs):
before_result=before_func(request,kargs)
if(before_result!=None):
return before_result;
main_result=main_func(request,kargs)
if(main_result!=None):
return main_result;
after_result=after_func(request,kargs)
if(after_result!=None):
return after_result;
return wrapper
return outer
def before(request,kargs):
print request,kargs,'之前!'
def after(request,kargs):
print request,kargs,'之后!'
@Filter(before,after)
def main(request,kargs):
print request,kargs
main('hello','python')
print main
運(yùn)行結(jié)果:
<function before at 0x02AC7BF0> <function after at 0x02AC7C30> <function main at 0x02AC7CF0> hello python 之前! hello python hello python 之后! <function wrapper at 0x02AC7D30>
我們可以加上很多斷點(diǎn),在Debug模式下運(yùn)行,查看程序一步一步的運(yùn)行軌跡。。。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法示例
- Python 裝飾器@,對(duì)函數(shù)進(jìn)行功能擴(kuò)展操作示例【開(kāi)閉原則】
- python3.6中@property裝飾器的使用方法示例
- python 使用裝飾器并記錄log的示例代碼
- python3 property裝飾器實(shí)現(xiàn)原理與用法示例
- Python使用裝飾器模擬用戶(hù)登陸驗(yàn)證功能示例
- Python實(shí)現(xiàn)對(duì)一個(gè)函數(shù)應(yīng)用多個(gè)裝飾器的方法示例
- python中裝飾器級(jí)連的使用方法示例
- Python中使用裝飾器來(lái)優(yōu)化尾遞歸的示例
- python 裝飾器的使用示例
相關(guān)文章
Python?pyecharts?Boxplot箱線(xiàn)圖的實(shí)現(xiàn)
本文主要介紹了Python?pyecharts?Boxplot箱線(xiàn)圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Python入門(mén)_學(xué)會(huì)創(chuàng)建并調(diào)用函數(shù)的方法
下面小編就為大家?guī)?lái)一篇Python入門(mén)_學(xué)會(huì)創(chuàng)建并調(diào)用函數(shù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Python中利用mpld3創(chuàng)建交互式Matplotlib圖表的代碼示例
mpld3 是一個(gè) Python 庫(kù),它將 Matplotlib 圖表轉(zhuǎn)換為 D3.js(JavaScript 繪圖庫(kù))可解釋的格式,從而實(shí)現(xiàn)了在瀏覽器中顯示并交互的功能,在本文中,我們將介紹如何使用 mpld3 在 Python 中創(chuàng)建交互式 Matplotlib 圖表,并提供代碼示例,需要的朋友可以參考下2024-05-05
Python?Fire中兩種命令行參數(shù)靈活設(shè)置方式詳解
Python的Fire庫(kù),一個(gè)用來(lái)生成命令行工具的的庫(kù),這篇文章主要針對(duì)命令行參數(shù),補(bǔ)充兩種更加靈活的設(shè)置方式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
用Python實(shí)現(xiàn)協(xié)同過(guò)濾的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)協(xié)同過(guò)濾的教程,主要用于從大數(shù)據(jù)中抽取用戶(hù)信息偏好等等,需要的朋友可以參考下2015-04-04
python uuid生成唯一id或str的最簡(jiǎn)單案例
這篇文章主要介紹了python uuid生成唯一id或str的最簡(jiǎn)單案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
如何利用Python讓Excel快速按條件篩選數(shù)據(jù)
平時(shí)總是要對(duì)Excel進(jìn)行操作,整理了一下平時(shí)經(jīng)常會(huì)用到的操作,下面這篇文章主要給大家介紹了關(guān)于如何利用Python讓Excel快速按條件篩選數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
python實(shí)現(xiàn)scrapy爬蟲(chóng)每天定時(shí)抓取數(shù)據(jù)的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)scrapy爬蟲(chóng)每天定時(shí)抓取數(shù)據(jù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python爬蟲(chóng)beautiful?soup的使用方式
這篇文章主要介紹了python爬蟲(chóng)beautiful?soup的使用方式,Beautiful?Soup依據(jù)給定的解釋器來(lái)解析html文檔,其依據(jù)html中標(biāo)簽把html文檔在內(nèi)存中轉(zhuǎn)化為類(lèi)似于二叉樹(shù)的數(shù)據(jù)結(jié)構(gòu),并通過(guò)實(shí)現(xiàn)的查詢(xún)方法來(lái)查詢(xún)二叉樹(shù)以得到我們想要的爬蟲(chóng)數(shù)據(jù)2022-08-08

