Python的装饰器

1.需要了解一个函数返回的是一个对象。-----在返回值后加 ( ) 就可以执行对象

2.是在一个函数中是传入的是一个对象。-----然后在函数中执行

1

第三行中,定义一个函数传递一个函数对象作为参数。

第四行中,定义了一个在函数内部的函数,必须返回这个函数或者在外函数中执行。不然没有意义。

第五行中,执行参数对象,

第六行中,执行在装饰器中想执行的代码这里只是演示。

第7行是 aaa()的返回 ,对应的是prints()()的第二个括号,第一个括号是执行第一个返回aaa对象,行8


第13行中 是装饰器 等于什么了 -->     prints = jgl(prints)   #这里传递的参数是一个对象,如果你传递的是prints(),那么prints对象必须要有return ,这样jgl()接受就是参数就是一个prints的返回值。

大体过程是这样的:

@jgl  ---->prints获得一个新的函数 被装饰器装饰过的函数

jgl(prints):

        def aaa():

              prints()

               print(“fasdfda”)

       return aaa


prints()   使用新对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Python中,函数是一等对象,因此你可以将函数与字符串,整数等对象看成一样。比如你可以将函数赋值给一个变量: ...
    lintong阅读 591评论 0 3
  • 注意: 如果对闭包不了解的同学请移步到这里先,因为装饰器要通过闭包来实现 前言 刚开始学Python的时候,装饰器...
    DamonYJ阅读 576评论 0 3
  • 定义了装饰器log 运行结果: 3层嵌套的效果是这样的: 自己思考的时候想过能不能将代码改为如下: 结果: 因为嵌...
    Dozing阅读 131评论 0 0
  • 中国美业百家名师 2016美甲世界杯裁判员 美业分会技术美甲导师 广东省人力资源局高级美甲师 深圳市职业培训学校职...
    美业纪录阅读 502评论 0 0
  • (一) 你像身边一缕轻挑的风 轻易就能撩乱我的发 我却无论如何费尽心机也得不到一句你随口的情话 (二) 走你走过的...
    几许_阅读 601评论 0 2