装饰器

标签: 装饰器
3人阅读 评论(0) 收藏 举报
分类:

装饰器

装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。

应用场景:比如插入日志、性能测试、事务处理、缓存、权限校验等场景。

一. 装饰器的简单事例

def timer(func):                    #装饰器
    def inner(*args,**kwargs):
        '''执行函数之前要做的'''
        ret = func(*args,**kwargs)
        '''执行函数之后要做的'''
        return ret
    return inner

@timer                               #@timmer 相当于 func = timmer(func)
def func():
    print("我是一只小小鸟")

func()                               #func() = inner()    调用装饰器


计算结果:
我是一只小小鸟

在修饰的func函数前打印"哈哈哈",函数执行后打印"咿呀咿呀呦"

def timer(func):

    def inner(*args,**kwargs):
        print("哈哈哈")                    #在执行前打印
        ret = func(*args,**kwargs)
        print("咿呀咿呀哟")              #在执行后打印
        return ret
    return inner

@timer
def func():
    print("我是一只小小鸟")

func()


计算结果:

哈哈哈
我是一只小小鸟
咿呀咿呀哟

二. 带参数的装饰器

def timer(func):

    def inner(*args,**kwargs):
        print("哈哈哈")
        ret = func(*args,**kwargs)
        print("咿呀咿呀哟")
        return ret
    return inner

@timer
def func(name):
    print("%s是一只小小鸟"%name)

func("alex")


计算结果:

哈哈哈
alex是一只小小鸟
咿呀咿呀哟
查看评论

Python自动化开发基础 装饰器-异常处理-面向对象编程 day4

从0基础开始讲解Python语法、流程控制、函数式编程、面向对象开发等最重要的PYTHON开发必备基础知识。由老男孩教育重磅推出,必是精品,不容错过。
  • 2015年04月29日 00:36

QQ空间装饰器QQ空间装饰器QQ空间装饰器QQ空间装饰器QQ空间装饰器

  • 2009年06月10日 01:33
  • 1.26MB
  • 下载

angular2.0装饰器祥解

@SkipSelf装饰器 在注入器injector层级中的祖先injector中查找 CoreModule,如果没有祖先injector则会提供一个CoreModule实例...
  • u010977147
  • u010977147
  • 2016-12-15 10:43:03
  • 4924

如何去理解闭包&装饰器

首先从概念上看“在python中, 函数本身也是对象” 1.python中一切皆对象 当执行: alist = [1, 2, 3] 时,你就创建了一个列表对象,并且用alist...
  • yongsan01
  • yongsan01
  • 2016-07-27 23:14:39
  • 853

9-5在类中定义装饰器

# -*- coding:utf-8 -*-""" 实际案例: 实现一个能将函数调用信息记录到日志的装饰器: 1.把每次函数的调用时间,执行时间.调用次数写入日志. 2.可以对被装饰函数分组,调用信息...
  • xiaochonghao
  • xiaochonghao
  • 2017-03-24 09:54:26
  • 686

Python实战小程序——装饰器

第四题:简述对Python装饰器的理解,写一个简单的装饰器。 要理解装饰器,我们先介绍一下几点python的基础知识。 1、作用域(命名空间)及变量生存周期 有过一点编程基础的都知道namesp...
  • misayaaaaa
  • misayaaaaa
  • 2016-11-04 16:15:29
  • 984

深入理解Python 装饰器(decorator)

返璞归真, 看山还是山 刚看到Python装饰器时, 觉得很神奇。简单实验下,发现也就那么回事。但是慢慢的看到越来越多的装饰器。很多时候又不了解到底是怎么回事了。最后还是决定好好研究下。先看看一些实例...
  • TangHuanan
  • TangHuanan
  • 2015-04-17 11:12:38
  • 9623

es7装饰器小入门

es7 装饰器 简单梳理安装npm i babel-plugin-transform-decorators-legacy babel-register --save-dev 安装: babel-plu...
  • qq_26383604
  • qq_26383604
  • 2018-01-14 23:09:54
  • 441

JavaScript的装饰器:它们是什么及如何使用

装饰器的流行应该感谢在Angular 2+中使用,在Angular中,装饰器因TypeScript能使用。但是在JavaScript中,还处于提议阶段。本文将介绍装饰器是什么,及装饰器如何让代码更加简...
  • owen1190
  • owen1190
  • 2017-06-13 20:37:53
  • 1142

python装饰器(decorator)

什么是装饰器(decorator)   简单来说,可以把装饰器理解为一个包装函数的函数,它一般将传入的函数或者是类做一定的处理,返回修改之后的对象.所以,我们能够在不修改原函数的基础上,在执行原函数前...
  • shuaijiasanshao
  • shuaijiasanshao
  • 2016-05-12 16:05:22
  • 3100
    个人资料
    等级:
    访问量: 0
    积分: 12
    排名: 0
    文章存档