动态的关闭和开启装饰器

我们可以通过一个变量来动态的关闭或开启装饰器

on = False


def strong(fun):  # fun 将来就是被替换的 hello
    global on
    if on:
        def new_hello():
            print("我是装饰器中的代码, 在 hello 之前执行的")
            fun()
            print("我是装饰器中的代码, 在 hello 之后...执行的")

        return new_hello
    else:
        return fun


@strong
def hello():
    print("我是 hello 函数中的代码")


# 这里调用的其实是装饰器返回的函数.

hello()

说明:

  1. 通过on来决定是否启用装饰器. True的时候, 启用装饰器

  2. onFalse的时候, 直接返回原始的函数, 则相当于没有启用装饰器


Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""