Python-装饰器

装饰器

开放封闭原则:

1.对功能的扩展开放

2.对修改源代码及调用方式封闭

装饰器:不修改源代码及调用方式的前提下,额外增加新功能

def foo():
    print('缘起缘灭缘终尽')
def warpper(func):  # func == foo函数的内存地址
    def inner():
        print('花开花落花归尘')
        func()
        print('故事已完')
     return inner  # 不能加括号
foo = warpper(foo)  # 不能加括号
foo()
     
def warpper(f):
    def inner():
        print('清风以北过南巷')
        f()
        print('南巷故人不知归')
    return inner
# python帮咱们做的一个东西,语法糖 @warpper
def func(): print('被修饰的函数1') @wrapper def index() print('被修饰的函数2') func() index()

pytho帮咱们做的东西,语法糖

  • 要将语法糖放在被装饰的函数正上方,先执行语法糖

  • 在使用语法糖时,要将装饰器写在语法糖的前面

posted on 2020-02-09 20:03  we我们  阅读(110)  评论(0)    收藏  举报