美文网首页
Python进阶-装饰器

Python进阶-装饰器

作者: Nietzsche_LiBai | 来源:发表于2019-05-31 17:36 被阅读0次

这篇文章要解决的问题:

# 装饰器是什么?

#  装饰器的种类?

# 为什么使用装饰器?

# 怎么使用装饰器?


# 装饰器

# 先来一个基础知识,上一篇文章Python进阶-多重嵌套和闭包 说到在python中 函数属于‘一等公民’,可以相互嵌套。不仅仅是可以相互嵌套,函数还可以作为参数传递

# 举个例子

函数作为参数传递

# 上面这个例子其实就是一个简单的装饰器,现在我们让他高大上一点,更有用处一点

# 我们在执行方法的前后分别log出方法名称 这样有利于我们看log 改bug

为已经存在的函数dosomething添加额外的功能

解释一下:

# dosometing 是一个函数的引用 传递给getFunName

# getFunName 其实是返回的swagger 对象,最后一个() 表示执行swagger函数对象

# 我们成功的在doSomeThing函数前后加入了想加入的log

# 再向前一步走 没错 @ 符号就是装饰器的语法糖

@语法糖

# 不需要再用装饰函数调用了,直接调用我们想调用的函数,只需要用@ 装饰一下 也实现了我们的需求

# 现在对装饰器有了一个基本的了解

# 带参数的装饰器

# 在这里进一步优化刚才的方法,刚才是可以在其他方法执行前后输出log ,那么通常log 会有一些等级 比如 info warn

# 我们给装饰器加上一个参数 按需返回

带参数的装饰器

# 内置装饰器(进传送门看吧)

# @property Python入门-面向对象.继承.封装.多态

# @staticmethod  @classmethod Python入门-面向对象.继承.封装.多态

# 类装饰器

# 装饰器函数其实是一个接口约束,它必须接受一个callable对象作为参数,然后返回一个callable对象。

# 在Python中一般callable对象都是函数,但也有例外。只要某个对象重载了__call__()方法,那么这个对象就是callable的。

# 举一个例子

类对象调用内置函数

# 所以,类也可以作为装饰器

类装饰器

# 装饰器的顺序

直接看 更直观

装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能

相关文章

  • Python装饰器(Decorator)完全指南-进阶篇

    Decorator进阶指南 在[python装饰器完全指南基础篇中],我们已经知道了python中的装饰器本质上只...

  • Python装饰器-专题笔记

    学会装饰器,Python更进阶 函数作用域到闭包到装饰器讲解,及闭包和装饰器的运用。 [√] 慕课网Meshare...

  • Python中的装饰器

    本文的内容主要参考了《Python进阶》一书 装饰器(Decorators)是什么? 我理解的装饰器,主要是设计模...

  • Python进阶 装饰器

    一切皆对象 原始的装饰器 使用@的装饰器 蓝本规范 带参数的装饰器 装饰器类

  • python装饰器进阶

    为什么要使用? 使用装饰器使代码变得整洁,并且能解决硬编码问题,使用起来也很方便,但是理解起来相对没那么容易,因此...

  • Python进阶(装饰器)

    note 1:Python内置的@语法就是为了简化装饰器调用。下面两图效果一样。 note 2:python的de...

  • Python进阶 - 装饰器

    函数进阶知识 函数名只是一个指向函数的变量 在python中,一切皆对象。函数名只是一个指向函数的变量,为了验证这...

  • Python进阶-装饰器

    这篇文章要解决的问题: # 装饰器是什么? # 装饰器的种类? # 为什么使用装饰器? # 怎么使用装饰器? # ...

  • Python 装饰器

    最近在重新在学习 Python 进阶的内容。整理一下关于装饰器(decorator)的一些知识。在解释装饰器前,先...

  • python进阶—装饰器Decorator

    python装饰器是在函数调用之上的修饰,这些修饰是在声明或者定义一个函数的时候进行设置的。同时,装饰器是一个返回...

网友评论

      本文标题:Python进阶-装饰器

      本文链接:https://www.haomeiwen.com/subject/tftbtctx.html