码迷,mamicode.com
首页 > 其他好文 > 详细

2018.12.14 今日所学

时间:2018-12-15 21:04:53      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:rap   rgs   执行   修改   组合   函数   目标   inner   app   

关于函数的装饰器

1 .装饰器,(难点,重点)

开闭原则:  

  对功能的扩展开放

  对代码的修改是封闭

 通用装饰器语法:

def wrapper(fn):

  def inner(*args,**kwargs):

    在目标函数之前加功能

    ret=fn(*args,**kwargs)

    在目标函数之后加功能

    return ret

  return inner

@wrapper  @就表示装饰器

def func():

  pass

func()  

2. 同一个函数被多个装饰器装饰  (就近原则)

@wrapper1

@wrapper2

@wrapper3

def func:

  pass

装饰效果 :  1 2 3 func 3 2 1

3. 带参数的装饰器  ( 略 微 难 受 )

def wrapper_out(参数):

  def wrapper(fn):

    def inner(*args,**kwargs):

      在目标函数之前

      net=fn(*args,**kwargs)

      在目标函数之后

      return net

    return inner

  return wrapper

@wrapper_out(实参)  #执行的时候,先执行函数的调用,将返回值和前面的@组合成装饰器语法糖

def func():

  pass

func()

2018.12.14 今日所学

标签:rap   rgs   执行   修改   组合   函数   目标   inner   app   

原文地址:https://www.cnblogs.com/zty1304368100/p/10119637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!