浅谈解除装饰器作用(python3新增)
- 更新时间:2022-10-21 08:58:18
- 编辑:弓三姗
参考资料
- 深入Python3中文版 / 4.8 MB / 码小辫 推荐度:
- Python3面向对象编程(英文) PDF 电子书 / 10.1 MB / Dusty Phillips 推荐度:
- Python3 标准库 PDF 电子书 / 148.9 MB / 道格·赫尔曼 推荐度:
正文内容
一个装饰器已经作用在一个函数上,你想撤销它,直接访问原始的未包装的那个函数。
假设装饰器是通过 @wraps 来实现的,那么你可以通过访问 wrapped 属性来访问原始函数:
>>> @somedecorator >>> def add(x, y): ... return x + y ... >>> orig_add = add.__wrapped__ >>> orig_add(3, 4) 7 >>>
如果有多个包装器:
In [588]: from functools import wraps In [589]: def decorator1(func): ...: @wraps(func) ...: def wrapper(*args, **kwargs): ...: print ('Decorator 1') ...: return func(*args, **kwargs) ...: return wrapper ...: In [590]: def decorator2(func): ...: @wraps(func) ...: def wrapper(*args, **kwargs): ...: print ('Decorator 2') ...: return func(*args, **kwargs) ...: return wrapper ...: In [591]: @decorator1 ...: @decorator2 ...: def add(x, y): ...: return x+y ...: In [592]: add(2,3) Decorator 1 Decorator 2 Out[592]: 5 In [593]: add.__wrapped__(2, 3) Decorator 2 Out[593]: 5 In [594]: add.__wrapped__.__wrapped__(2,3) Out[594]: 5
参考:Python Cookbook
以上这篇浅谈解除装饰器作用(python3新增)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。
python3相关教程
-
opencv对python3的支持
支持。opencv_python-3.1.0-cp34-cp34m-win_amd64.whl。这就是用于python3.1版本的opencv库。除此之外还有其他版本的就不一一举例了,请网上详查。
发布时间:2020-01-23
-
python3的url编码和解码应用实例
今天小编就为大家分享一篇python3的url编码和解码,自定义gbk、utf-8的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2020-01-30
-
Python3爬取英雄联盟英雄皮肤图片方法
这篇文章主要介绍了Python3爬取英雄联盟英雄皮肤大图的实例代码,文中较详细的给大家介绍了爬虫思路及完整代码,需要的朋友可以参考下
发布时间:2019-06-21
-
python3字符串输出常见面试题总结
给大家整理一篇关于python 字符串的教程,在本篇文章里小编给大家整理的是一篇关于python3字符串输出常见面试题总结内容,有需要的朋友们可以参考下。
发布时间:2022-09-07
-
python多版本下设置python3为默认的方法
这篇文章主要介绍了如何在双python下设置python3为默认,本文通过一个例子分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
发布时间:2019-06-06
-
详解win7下python3.6安装配置方法步骤
这篇文章主要为大家详细介绍了win7下python3.6安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2020-01-26
-
python3+PyQt5 自定义窗口部件:使用窗口部件样式表的方法
今天小编就为大家分享一篇python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2021-04-26
-
python3实现ftp服务功能的实例内容
这篇文章主要为大家详细介绍了python3实现ftp服务功能,客户端的相应代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2021-05-10
-
python3.6如何导入excel里面的数据
为网友们分享了关于python3的教程,导入包xlrd模块(先确定python是否安装了xlrd模块),处理数据(获取当前表,并选择表1,或者你改的任何一个名字),处理数据(从表中读取数据,并获取表中数据的行和列),输出数据(pr
发布时间:2022-09-13
-
python3.4用函数操作mysql5.7方法
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ =
发布时间:2020-05-05