博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3 装饰器
阅读量:6877 次
发布时间:2019-06-26

本文共 710 字,大约阅读时间需要 2 分钟。

def myDecorator(...):    #定义装饰器,可能带参数

  def decorator(func): #装饰器核心,以被装饰的函数对象为参数,返回装饰后的函数对象
    def wrapper(*args, **kvargs): #装饰的过程,参数列表适应不同参数的函数
      ... #修改函数调用前的行为
      func(*args, **kvargs) #调用函数
      ... #修改函数调用后的行为
    return wrapper
   return decorator
@myDecorator(...):    #给函数加上装饰器
def myFunc(...):     #自己定义的功能函数
...

def setTag(tag): #由于此装饰器需要参数,所以要再套一层

  def myDecorator(func): #装饰器的核心,接受函数对象做参数,返回包装后的函数对象
    def myWrapper(*arg, **kvargs): #包装的具体过程
      sign = "<" + tag + ">"
      return sign + func(*arg, **kvargs) + sign
     return myWrapper
    return myDecorator

@setTag("div") #用@标签在定义函数时套上装饰器

def hello(name):
  return 'hello' + name

转载于:https://www.cnblogs.com/sgwjj/p/9561071.html

你可能感兴趣的文章
POJ 3494 Largest Submatrix of All 1’s
查看>>
Ubuntu系统分配存储空间的建议以及给Ubuntu系统根目录扩容方法(从20GB追加100GB)...
查看>>
centos 查询mysql配置文件位置
查看>>
Eclipse IDE 使用技巧(一)
查看>>
用Word写博客园文章
查看>>
sh cssupdate
查看>>
如何让多出的文本用省略号表示
查看>>
【转】CentOS 7 安装配置 NFS
查看>>
WebLog Expert
查看>>
TFT LCD显示原理详解
查看>>
类型库 type library
查看>>
python之virtualenv
查看>>
sql效率
查看>>
Python绘图和数值工具:matplotlib 和 numpy下载与使用
查看>>
php - 从数据库导出百万级数据(CSV文件)
查看>>
安卓开发自定义View的框架学习
查看>>
spark-groupByKey
查看>>
redis 随笔
查看>>
LOJ#2302 整数
查看>>
常见的加密解密算法
查看>>