Python 装饰器

装饰

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 装饰器)