百万年薪python之路 -- 装饰器
装饰器 1.1 开放封闭原则 开放封闭原则具体定义是这样: 1.对扩展是开放的 我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改。所以我们必须允许代码扩展、添加新功能。 2.对修改是封闭的 因为我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对函数内部进行修改,或者修改了函数的调用方式,很有可能影响其他已经在使用该函数的用户。 定义:在不改变原被装饰的函数的源代码以及调用方式下,为其添加额外的功能。 实现真正的开放封闭原则:装饰器。 运用闭包原理: import time def index(): time.sleep(2) # 模拟一下网络延迟以及代码的效率 print('这是一个主页') def access_index(name): time.sleep(3) # 模拟一下网络延迟以及代码的效率 print(f'欢迎访问{name}主页') 套一层最外面的函数timer,然后将里面的inner函数名作为最外面的函数的返回值 def timer(func): # func = index def inner(): start_time = time.time() func() end_time = time.time() print(f'此函数的执行效率为{end_time-start_time}') return