zoukankan      html  css  js  c++  java
  • 装饰器的进阶

    1. 函数的相关名称
    1. 函数的注释
    2. 查看函数的名称 __name__ __doc__
    from functools import wraps
    @wrap(fn) 把你的函数的名字和doc换成你的目标函数

    2. 回顾装饰器
    def wrapper(fn):
    def inner(*args, **kwargs):
    '''之前'''
    ret = fn(*args, **kwargs)
    '''之后'''
    return ret
    return inner
    @wrapper
    def func():
    pass
    3. 带参数的装饰器
    def wrapper_out(参数):
    def wrapper(fn):
    def inner(*args, **kwargs):
    '''之前'''
    ret = fn(*args, **kwargs)
    '''之后'''
    return ret
    return inner
    return wrapper
    @wrapper_out(实参) # 先执行wrapper_out(实参), 得到一个装饰器, 和前面的@组装成一个语法糖
    def func():
    pass
    4. 多个装饰器同时装饰一个函数
    @wrapper1
    @wrapper2
    @wrapper3
    def func():
    pass
    {([目标])}

  • 相关阅读:
    解决maven导入坐标太慢问题
    +=的扩展
    JavaScript
    多线程
    异常
    面向对象
    数组
    java内存
    循环语句和递归
    剑指 Offer 30. 包含min函数的栈
  • 原文地址:https://www.cnblogs.com/wy3713/p/9187312.html
Copyright © 2011-2022 走看看