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

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

Python裝飾器如何實現修復過程解析

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

Python裝飾器(decorator)在實現的時候,被裝飾后的函數其實已經是另外一個函數了(函數名等函數屬性會發生改變),

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

它能保留原有函數的名稱和docstring。

未加@wraps的時候:

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

打印結果是:

Python裝飾器如何實現修復過程解析

但是加上@wraps以后:

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

打印結果是:

Python裝飾器如何實現修復過程解析

其中主要的就是兩個變量:

1、顯示 正在執行的函數的名稱 f.name

2、顯示 正在執行的函數的注釋 f.doc

簡單來說就是:

如果沒使用@wraps,當A調用了裝飾器B的話,即使A.name,返回的會是裝飾器B的函數名稱,而不是A的函數名稱

如果使用了@wraps,當A調用了裝飾器B的話,A.__ name__返回的會是A函數的名稱,而不是飾器B的名稱,

這也即使常說的@wraps是裝飾器的修復技術,

實際就是修復還原了A的__ name__變量,同理__ doc__變量也是一樣。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 哈尔滨发电机,黑龙江柴油发电机组-北方星光 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 谷梁科技 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂| 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 菏泽知彼网络科技有限公司 | 茅茅虫AI论文写作助手-免费AIGC论文查重_写毕业论文降重 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 泰安塞纳春天装饰公司【网站】| 小型玉石雕刻机_家用玉雕机_小型万能雕刻机_凡刻雕刻机官网 | 小小作文网_中小学优秀作文范文大全| 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 |