装饰器-Python

系统+安全 Liemer_Lius 918℃ 0评论

装饰器是Python中的重要概念. 通过装饰器, 我们可以在不改变函数名称的情况下, 对函数进行一定的修改.

# _Author: lWX548594
# _Date: 2018/7/11 0011
# _SctiptName: decrator

import time



# 遵守开放封闭原则

# def showtime():
#     start = time.time()
#     foo()
#     end = time.time()
#     print("Spend time is: %s" % (end - start))
#
# showtime()


# 变量引入到函数


def logger(flag=''):    # 装饰器一个非常好的地方, 就是可以引入变量, 有了这个变量可以进行一系列的操作.
    def show_time(f):
        def inner(x, y):
            start = time.time()
            f(x, y)
            end = time.time()
            if flag=='true':
                print("日志记录: ")
            print("Spend time is: %s" % (end - start))
        return inner    # 返回的是一个函数, 这个函数是普通函数经过修饰后的新函数
    return(show_time)




# @showtime
# def foo():
#     for i in range(1000):
#         print(i,)

@logger('true')    # @来引入装饰器, 并将一个参数true传入
def add(a, b):     # 此时的add函数, 以上的inner函数, 并且flag='true'
    print(a + b)

# foo = showtime(foo)

print(add(3, 7))

执行结果:
C:\Users\lwx548594\PycharmProjects\LiusProject\venv\Scripts\python.exe C:/Users/lwx548594/PycharmProjects/LiusProject/old/decrator.py
10
日志记录: 
Spend time is: 0.0
None

 

 

转载请注明:liutianfeng.com » 装饰器-Python

喜欢 (0)

发表回复