装饰器

---恢复内容开始---

1.开放封闭原则

     软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能扩展是开放的,也就是说我们必须找到一种解决方案:

      能够在不修改一个功能源代码以及调用方式的前提下,为其加上新功能

 归纳两个原则如下:
1.不修改源代码
2不修改调用方式

2、什么是装饰器

器指的是工具,装饰指的是为装饰对象添加新功能

完整的含义:

装饰器即在不修改函数源代码和调用方式的前提下,为被装饰对象添加新功能

装饰器与被装饰的对象均可以是任意可调用的对象

装饰器==>函数

被装饰的对象==>函数

3.无参装饰器

(模板)

def outer(func):
     def inner(*args,**kwargs):
     res=func(*args,**kwargs)
     return res
return inner

==============装饰器
def timmer(func):
#func=最原始的home
     def wrapper(*args,**kwargs):
           start_time=time.time()
           res=func(*args,**kwargs) #调用最原始的home
           stop_time=time.time()
           print(stop_time-start_time)
           return res
     return wrapper


index=timmer(index) # 新的index=wrapper
home=timmer(home) #新的home=wrapper
 ==========================================

res=index() #res=wrapper()
print(res)

 

---恢复内容结束---

posted @ 2018-03-29 16:29  O-M-G  阅读(76)  评论(0编辑  收藏  举报