遥想大肠包小肠----python装饰器乱弹

 

说起装饰器就tm蛋疼,在老男孩学习python装饰器,结果第二天默写,全错了,一道题抄十遍,共计二十遍。

要是装饰器是一人,我非要约他在必图拳馆来一场......

下面容我展示一下默写二十遍的成果

语法形式

 

def  mydec(wenwa):

  def inner(*args,**kwagrs):

    ret = wenwa(*args,**kwargs)

    return ret  #请务必别忘记这还有个该死的return,如果被执行的函数没有返回值return,则ret为None

  return inner

其实我们不妨把装饰器想象为台湾同胞的一款小吃:大肠包小肠,外面那层大肠其实是外层函数mydec() 一口咬下去(给被调用函数加装饰器糖),吃到的是(执行的是)内层函数inner()包裹的函数wenwa() 至于外层函数inner()的入参*args则为多个变量(入参)传入提供了通道,而另一种入参**kwargs则为形如 x=3,a=4这类表达式型的参数提供了传入的可能。(您要是觉得糊涂,可以查看saintding转自runoob的另一篇博文http://www.cnblogs.com/saintdingspage/p/7788905.html参数部分)

以下为saintding写的一个装饰器......算了,还是看网上大牛写的吧,下列代码参考自https://www.zhihu.com/question/26930016知乎网站,特此鸣谢

 

posted @ 2017-11-05 22:12  saintdingtheGreat  阅读(211)  评论(0编辑  收藏  举报