装饰器
对修改是封闭的,对扩展是开放的
在原有函数上调用时加时间
import time
def a():
print('This is a function')
def b():
print('Hello world')
def print_current_time(abc):
print(time.time())
abc()
print_current_time(a)
print_current_time(b)等同于
import time
def a():
print('This is a function')
def b():
print('Hello world')
def print_current_time(abc):
print(time.time())
abc()
print(time.time())
a()
print(time.time())
b()更改了内部实现,不够优雅
装饰器
修改一下
进一步优化,支持不同个数的参数
进一步优化,加入关键字参数
装饰器也可以用来控制访问 一个函数上就可以加多个装饰器
Last updated
Was this helpful?