Python考试题--第55道题目--怎样自定义包装器--2022年04月10日

原创
小哥 3年前 (2022-10-29) 阅读数 7 #大杂烩

1.装饰者的定义:

1装饰符是一种函数,它可以在不进行任何更改的情况下向函数添加附加功能。

2,可以插入日志, 性能测试, 事务处理、缓存等。

2、代码演示:

如果很难理解,可以看第三部分的例子,简单易懂:

from functools import wraps
def log(flag):
    def decorate(func):
        @wraps(func)
        def _wrap(*args, **kwargs):
            try:
                if flag:
                    func(*args, **kwargs)
                print(name, func.__name__)
            except Exception as e:
                print(e.args)
        return _wrap
    return decorate

@log(True) # 语法糖,这个修饰符的作用是打印出函数的函数名。
def add(a, b, c):
    print(a + b + c)

add(1, 2, 3)

3.简单易懂的例子:

修饰符实际上是一个函数,该函数的输入是一个函数,该函数嵌套在该函数中,返回值是输入函数。

此示例在加法函数之前和之后添加开始标签和结束标签。

最初的加法函数只输出一个结果值。

添加上面的装饰符后,将出现开始和结束标签。

代码如下:

# 装饰符的函数,输入函数,然后嵌套内部函数,最后返回到输入函数。
def show(function): 
    def temp(*args, **kwargs):
        print(-----开始--------)
        rel = function(*args, **kwargs)
        print(-----结束--------)
        return rel
    return temp

@show # 语法糖
def add(a,b,v):
    print(a + b + v)

add(1, 2, 3)
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除