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

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

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

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

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

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

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

未加@wraps的時候:

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

打印結(jié)果是:

Python裝飾器如何實現(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): ''' 這是一個測試裝飾器修復(fù)技術(shù)的函數(shù) :param arg: 隨便傳 :return: 沒有 ''' print(arg)f1(’呵呵’)print(f1.__name__,f1.__doc__)

打印結(jié)果是:

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

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

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

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

簡單來說就是:

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

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

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

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 温州在线网| 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 电位器_轻触开关_USB连接器_广东精密龙电子科技有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | SMN-1/SMN-A ABB抽屉开关柜触头夹紧力检测仪-SMN-B/SMN-C-上海徐吉 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | CPSE安博会| 驾驶式洗地机/扫地机_全自动洗地机_工业洗地机_荣事达工厂官网 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 |