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

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

Python如何解除一個裝飾器

瀏覽:8日期:2022-07-14 16:50:50

問題

一個裝飾器已經作用在一個函數上,你想撤銷它,直接訪問原始的未包裝的那個函數。

解決方案

假設裝飾器是通過 @wraps 來實現的,那么你可以通過訪問 __wrapped__ 屬性來訪問原始函數:

>>> @somedecorator>>> def add(x, y):... return x + y...>>> orig_add = add.__wrapped__>>> orig_add(3, 4)7>>>

討論

直接訪問未包裝的原始函數在調試、內省和其他函數操作時是很有用的。 但是我們這里的方案僅僅適用于在包裝器中正確使用了 @wraps 或者直接設置了 __wrapped__ 屬性的情況。

如果有多個包裝器,那么訪問 __wrapped__ 屬性的行為是不可預知的,應該避免這樣做。 在Python3.3中,它會略過所有的包裝層,比如,假如你有如下的代碼:

from functools import wrapsdef decorator1(func): @wraps(func) def wrapper(*args, **kwargs): print(’Decorator 1’) return func(*args, **kwargs) return wrapperdef decorator2(func): @wraps(func) def wrapper(*args, **kwargs): print(’Decorator 2’) return func(*args, **kwargs) return wrapper@decorator1@decorator2def add(x, y): return x + y

下面我們在Python3.3下測試:

>>> add(2, 3)Decorator 1Decorator 25>>> add.__wrapped__(2, 3)5>>>

下面我們在Python3.4下測試:

>>> add(2, 3)Decorator 1Decorator 25>>> add.__wrapped__(2, 3)Decorator 25>>>

最后要說的是,并不是所有的裝飾器都使用了 @wraps ,因此這里的方案并不全部適用。 特別的,內置的裝飾器 @staticmethod 和 @classmethod 就沒有遵循這個約定 (它們把原始函數存儲在屬性 __func__ 中)。

以上就是Python如何解除一個裝飾器的詳細內容,更多關于Python 解除裝飾器的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 模具ERP_模具管理系统_模具mes_模具进度管理_东莞市精纬软件有限公司 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 佛山市德信昌电子有限公司 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 泰安办公家具-泰安派格办公用品有限公司 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | 999范文网_优质范文下载写作帮手| 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 执业药师报名时间,报考条件,考试时间-首页入口 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 高中学习网-高考生信息学习必备平台 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 |