美文网首页
Python之装饰器

Python之装饰器

作者: 冰西瓜大郎 | 来源:发表于2017-07-13 22:19 被阅读0次

装饰器的作用:

装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。

最简单的例子就是日志:

def func():
    print(func.__name__)

如果此时想打印一条log,可以这样写:

def func():
    logging.warn("this is")
    print(func.__name__)

使用这样方式的话,以后在其他方法里也必须这样写了,重复代码太多。
这个时候装饰器的价值就体现出来了。
装饰器本质是一个对象。以函数对象作为参数:

def deco(func):
    def wrapper(*args,**kwargs):
         logging.warn("this is")
         func()
    return wrapper

def func():
    print(func.__name__)

func = deco(func) #deco(func)返回的是一个函数对象
func() #函数对象func()才会执行这个方法

用@语法糖:

def deco(func):
    def wrapper(*args,**kwargs):
         logging.warn("this is")
         func()
    return wrapper
@deco
def func():
    print(func.__name__)
#!/usr/bin/python  告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#encoding="utf-8"
这样py文件中就可以输入中文了

#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,

相关文章

  • 装饰器五部曲

    听说你学不会装饰器?Python基础之装饰器五部曲,带你轻轻松松学会装饰器 装饰器(decorator)是Pyth...

  • 9个Python 内置装饰器: 显著优化代码

    装饰器是应用“Python 之禅”哲学的最佳 Python 特性。装饰器可以帮助您编写更少、更简单的代码来实现复杂...

  • Python 入门之 Python三大器 之 装饰器

    Python 入门之 Python三大器 之 装饰器 1、开放封闭原则: (1)代码扩展进行开放 ​ 任何一个程序...

  • 装饰器模式

    介绍 在python装饰器学习 这篇文章中,介绍了python 中的装饰器,python内置了对装饰器的支持。面向...

  • Python ☞ day 5

    Python学习笔记之 装饰器& 偏函数 & 异常处理 & 断言 & 文件读写 &编码与解码 装饰器 概念:是一个...

  • Python闭包和装饰器

    本节课纲: 魔法方法之_call_ 闭包 装饰器 装饰器实例 一、魔法方法之_call_ 在Python中,函数其...

  • python中的装饰器

    python装饰器详解 Python装饰器学习(九步入门) 装饰器(decorator) 就是一个包装机(wrap...

  • [译] Python装饰器Part II:装饰器参数

    这是Python装饰器讲解的第二部分,上一篇:Python装饰器Part I:装饰器简介 回顾:不带参数的装饰器 ...

  • Python中的装饰器

    Python中的装饰器 不带参数的装饰器 带参数的装饰器 类装饰器 functools.wraps 使用装饰器极大...

  • Python进阶——面向对象

    1. Python中的@property   @property是python自带的装饰器,装饰器(decorat...

网友评论

      本文标题:Python之装饰器

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