国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

淺談解除裝飾器作用(python3新增)

2020-01-04 14:21:35
字體:
來源:轉載
供稿:網友

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

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

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

如果有多個包裝器:

In [588]: from functools import wrapsIn [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 1Decorator 2Out[592]: 5In [593]: add.__wrapped__(2, 3)Decorator 2Out[593]: 5In [594]: add.__wrapped__.__wrapped__(2,3)Out[594]: 5

參考:Python Cookbook

以上這篇淺談解除裝飾器作用(python3新增)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安多县| 涪陵区| 扶沟县| 大埔县| 长治市| 和龙市| 财经| 威海市| 安顺市| 富民县| 全州县| 文安县| 阳朔县| 胶南市| 南乐县| 邵阳市| 河西区| 涡阳县| 苏尼特左旗| 成都市| 改则县| 万全县| 磐安县| 东丰县| 玉门市| 江城| 天峻县| 双鸭山市| 明水县| 灵台县| 会东县| 曲阜市| 金秀| 天气| 来安县| 阳城县| 吉隆县| 四川省| 板桥市| 米易县| 宁波市|