Python装饰器代码简单实现
先说一说装饰器的个人理解吧
- 装饰器就是在不改变原函数的情况下,给原函数增加一些额外的功能,装饰器本质就是一个闭包(先说这么多,以后再补充)
不接受参数的通用装饰器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32"""
定义一个装饰器,这是一个不接受参数的装饰器
"""
def decorator(func):
# 加 *args, **kwargs 这两个参数为了能够接受参入函数的参数(你不能保证传入的函数有没有参数,以及这个传入的函数有多少个参数)
def wrapper(*args, **kwargs):
print("我是装饰器")
fun = func(*args, **kwargs)
# 最后再把传入的函数返回出去
return fun
# 这个return 很重要,装饰器就语法就是这样, 返回内部函数,其实装饰器本质就是一个闭包
return wrapper
"""
下面是装饰器的使用
"""
def function():
print("我是一个函数")
"""
执行函数
"""
if __name__ == '__main__':
function()
可以接收参数的装饰器
我这里就写一个只接收一个参数的装饰器, 如果需要多个参数, 只需要再加上就好啦(不懂就留言评论,看到就回)
1 |
|
使用装饰器实现测试某函数的执行时间
1 | import time |