lg04551

导航

 

装饰器

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

开放封闭原则

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

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

  总结:

  原则:1、不修改源代码

     2、不修改调用方式

  目的:

    在遵循1和2原则的基础上扩展新功能

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

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

装饰器——》函数

被装饰的对象——》函数

import time

def index():

  time.sleep(1)

  print('welcome to index page')

def outter(func)

  def wrapper():

    start_time=time.time()

    func()

    stop_time=time.time()

    print(stop_time-start_time)

  return wrapper

index=outer(index)

index()

时间

import time

def timmer(func):

  def wrapper(*arges,**kwargs):

     start_time=time.time()

     res=func(*args,**kwargs)

     stop_time=time.time()

     print(stop_time-start-time)

     return res

  return wrapper

@timmer   @是执行该下面的函数名 index=outter(index)由上往下执行的

def index():

  time.sleep(1)

  print('welcome to index page')

  return122

有参函数

三层,就是在无参外面还在包一层,提供定义的参数给函数体里调用

  

 

posted on 2018-03-29 15:19  lg04551  阅读(76)  评论(0编辑  收藏  举报