20210108-1 装饰器详解

装饰器:
定义:
本质是函数,功能是用来装饰其他函数,就是为其他函数添加附加功能(器是函数的意思,本质是用来装饰的)
原则:
1. 不能修改被装饰的函数的源代码
2. 不能修改被装饰的函数的调用方式
# 装饰器,对被装饰的函数是完全透明的

1-1
def test1():
    pass

def test2():
    pass

test1()
test2()

test1 和 test2 都有自己要完成的功能,现在要把 test1 和 test2 新增加一个记录日志的功能
应该如何操作?

1-1-1
以前的做法,把代码一段一段的加进去
def test1():
    pass
    print('logging')

def test2():
    pass
    print('logging')

test1()
test2()

1-1-2
学了函数之后,高级了一些;单独定义一个函数
def logger():
    print('logging')

def test1():
    pass
    logger()

def test2():
    pass
    logger()

test1()
test2()

1-1-3
假如有 100 个函数,已经运行在生产环境当中
有一天产品经理说,要对app新增一个功能,应该怎么做?找到100个函数,每一个都加上去?
但是你的程序已经运行了,这种修改源代码的操作,意味着会有风险发生
所以,新增一个功能,不能够修改函数的源代码,函数一旦写好了,原则上是不能动源代码的
因此,函数的调用方式也不能修改

 

上一篇:Python命令行运行文件的实例方法


下一篇:ES标签搜索并解决评分排序问题