美文网首页
Python 装饰器

Python 装饰器

作者: 一本大书 | 来源:发表于2018-11-13 11:44 被阅读8次

    装饰

    def w1(func):
        def inner():
            print("---正在验证权限---")
            func()
        return inner
    
    @w1
    def f1():
        print("---f1---")
    
    @w1
    def f2():
        print("---f2---")
     
    f1()
    f2()
    

    打印结果:

    ---正在验证权限---
    ---f1---
    ---正在验证权限---
    ---f2---
    

    python中的装饰器是让一个指针 f1 指向函数地址,在调用函数之前,先去调用装饰器 w1,并且将指向函数地址的指针 f1 传入,在调用函数f1的时候先去调用装饰器,再由装饰器 w1 内部调用 f1,以此来实现装饰器!!


    嵌套装饰:

    def w1(func):
        print("---w1 装饰---")
        def inner():
            print("---w1 正在验证权限---")
            func()
        return inner
    
    def w2(func):
        print("---w2 装饰---")
        def inner():
            print("---w2 正在验证权限---")
            func()
        return inner
    
    @w1
    @w2
    def f1():
        print("---f1---")
     
    f1()
    

    打印结果:

    ---w2 装饰---
    ---w1 装饰---
    ---w1 正在验证权限---
    ---w2 正在验证权限---
    ---f1---
    

    相关文章

      网友评论

          本文标题:Python 装饰器

          本文链接:https://www.haomeiwen.com/subject/uibkfqtx.html