电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python裝飾器如何實(shí)現(xiàn)修復(fù)過程解析

瀏覽:3日期:2022-07-12 10:06:48

Python裝飾器(decorator)在實(shí)現(xiàn)的時(shí)候,被裝飾后的函數(shù)其實(shí)已經(jīng)是另外一個(gè)函數(shù)了(函數(shù)名等函數(shù)屬性會(huì)發(fā)生改變),

為了不影響,Python的functools包中提供了一個(gè)叫wraps的decorator來消除這樣的副作用。寫一個(gè)decorator的時(shí)候,最好在實(shí)現(xiàn)之前加上functools的wrap,

它能保留原有函數(shù)的名稱和docstring。

未加@wraps的時(shí)候:

from functools import wrapsdef wrapper(func): # @wraps(func) def inner(*args, **kwargs): print('裝飾器工作中...') func(*args, **kwargs) return inner@wrapperdef f1(arg): ''' 這是一個(gè)測試裝飾器修復(fù)技術(shù)的函數(shù) :param arg: 隨便傳 :return: 沒有 ''' print(arg)f1(’呵呵’)print(f1.__name__,f1.__doc__)

打印結(jié)果是:

Python裝飾器如何實(shí)現(xiàn)修復(fù)過程解析

但是加上@wraps以后:

from functools import wrapsdef wrapper(func): @wraps(func) def inner(*args, **kwargs): print('裝飾器工作中...') func(*args, **kwargs) return inner@wrapperdef f1(arg): ''' 這是一個(gè)測試裝飾器修復(fù)技術(shù)的函數(shù) :param arg: 隨便傳 :return: 沒有 ''' print(arg)f1(’呵呵’)print(f1.__name__,f1.__doc__)

打印結(jié)果是:

Python裝飾器如何實(shí)現(xiàn)修復(fù)過程解析

其中主要的就是兩個(gè)變量:

1、顯示 正在執(zhí)行的函數(shù)的名稱 f.name

2、顯示 正在執(zhí)行的函數(shù)的注釋 f.doc

簡單來說就是:

如果沒使用@wraps,當(dāng)A調(diào)用了裝飾器B的話,即使A.name,返回的會(huì)是裝飾器B的函數(shù)名稱,而不是A的函數(shù)名稱

如果使用了@wraps,當(dāng)A調(diào)用了裝飾器B的話,A.__ name__返回的會(huì)是A函數(shù)的名稱,而不是飾器B的名稱,

這也即使常說的@wraps是裝飾器的修復(fù)技術(shù),

實(shí)際就是修復(fù)還原了A的__ name__變量,同理__ doc__變量也是一樣。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | Q361F全焊接球阀,200X减压稳压阀,ZJHP气动单座调节阀-上海戎钛 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 紫外线老化试验箱_uv紫外线老化试验箱价格|型号|厂家-正航仪器设备 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 韦伯电梯有限公司| 阻燃剂-氢氧化镁-氢氧化铝-沥青阻燃剂-合肥皖燃新材料 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 一技任务网_有一技之长,就来技术任务网| 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 首页-浙江橙树网络技术有限公司 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 分子蒸馏设备(短程分子蒸馏装置)_上海达丰仪器 | 在线悬浮物浓度计-多参数水质在线检测仪-上海沃懋仪表科技有限公司 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 磁粉制动器|张力控制器|气胀轴|伺服纠偏控制器整套厂家--台灵机电官网 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 |