返回顶部
首页 > 资讯 > 后端开发 > Python >python decorator
  • 239
分享到

python decorator

pythondecorator 2023-01-31 02:01:12 239人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

def benchmark(func):     """     A decorator that prints the time a function takes     to execute.     """     import ti

def benchmark(func): 

    """ 

    A decorator that prints the time a function takes 

    to execute. 

    """ 

    import time 

    def wrapper(*args, **kwargs): 

        t = time.clock() 

        res = func(*args, **kwargs) 

        print func.__name__, time.clock()-t 

        return res 

    return wrapper 

 

 

def logging(func): 

    """ 

    A decorator that logs the activity of the script. 

    (it actually just prints it, but it could be logging!) 

    """ 

    def wrapper(*args, **kwargs): 

        res = func(*args, **kwargs) 

        print func.__name__, args, kwargs 

        return res 

    return wrapper 

 

 

def counter(func): 

    """ 

    A decorator that counts and prints the number of times a function has been executed 

    """ 

    def wrapper(*args, **kwargs): 

        wrapper.count = wrapper.count + 1 

        res = func(*args, **kwargs) 

        print "{0} has been used: {1}x".fORMat(func.__name__, wrapper.count) 

        return res 

    wrapper.count = 0 

    return wrapper 

 

@counter 

@benchmark 

@logging 

def reverse_string(string): 

    return str(reversed(string)) 

 

print reverse_string("Able was I ere I saw Elba") 

print reverse_string("A man, a plan, a canoe, pasta, heros, rajahs, a coloratura, maps, snipe, percale, Macaroni, a gag, a banana bag, a tan, a tag, a banana bag again (or a camel), a crepe, pins, Spam, a rut, a Rolo, cash, a jar, sore hats, a peon, a canal: Panama!") 

 

#outputs: 

#reverse_string ('Able was I ere I saw Elba',) {} 

#wrapper 0.0 

#wrapper has been used: 1x  

#ablE was I ere I saw elbA 

#reverse_string ('A man, a plan, a canoe, pasta, heros, rajahs, a coloratura, maps, snipe, percale, macaroni, a gag, a banana bag, a tan, a tag, a banana bag again (or a camel), a crepe, pins, Spam, a rut, a Rolo, cash, a jar, sore hats, a peon, a canal: Panama!',) {} 

#wrapper 0.0 

#wrapper has been used: 2x 

#!amanaP :lanac a ,noep a ,stah eros ,raj a ,hsac ,oloR a ,tur a ,mapS ,snip ,eperc a ,)lemac a ro( niaga gab ananab a ,gat a ,nat a ,gab ananab a ,gag a ,inoracam ,elacrep ,epins ,spam ,arutaroloc a ,shajar ,soreh ,atsap ,eonac a ,nalp a ,nam A 

@counter 

@benchmark 

@logging 

def get_random_futurama_quote(): 

    import Httplib 

    conn = httplib.HTTPConnection("slashdot.org:80") 

    conn.request("HEAD", "/index.html") 

    for key, value in conn.getresponse().getheaders(): 

        if key.startswith("x-b") or key.startswith("x-f"): 

            return value 

    return "No, I'm ... doesn't!" 

 

print get_random_furturama_quote() 

print get_random_furturama_quote() 

 

#outputs: 

#get_random_futurama_quote () {} 

#wrapper 0.02 

#wrapper has been used: 1x 

#The laws of science be a harsh mistress. 

#get_random_futurama_quote () {} 

#wrapper 0.01 

#wrapper has been used: 2x 

#Curse you, merciful Poseidon! 

python itself provides several decorators: property, staticmethod, etc. Django use decorators to manage caching and view permissions. Twisted to fake inlining asynchronous functions calls. This really is a large playground. 

 

 

--结束END--

本文标题: python decorator

本文链接: https://lsjlt.com/news/186450.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python decorator
    def benchmark(func):     """     A decorator that prints the time a function takes     to execute.     """     import ti...
    99+
    2023-01-31
    python decorator
  • python的装饰器decorator
    在python中编程碰到过这样一件事情,需要给大量的函数做相同的操作,这样每个函数都去实现一遍这个功能显然是浪费时间。#这是一个装饰器函数def DecoratorFunc(func):    #Function就是对传入的func函数的包...
    99+
    2023-01-31
    python decorator
  • python中的装饰器decorator
    装饰器是为了解决以下描述的问题而产生的方法 我们在已有的函数代码的基础上,想要动态的为这个函数增加功能而又不改变原函数的代码 例如有三个函数: def f1(x): return x def f2(x): return...
    99+
    2023-01-31
    python decorator
  • python重试装饰器(Python function retry decorator)
    python重试装饰器(Python function retry decorator)在用requests请求接口或者html的时候,很容易出现超时,限制等各种原因。在对源代码不进行修改的情况下,可以用装饰器来进行重试任何函数: 成功,返...
    99+
    2023-01-31
    重试 Python python
  • Python中Decorator的作用是什么
    本篇文章给大家分享的是有关Python中Decorator的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先来看一个简单的例子:# -*- co...
    99+
    2023-06-17
  • 如何使用Python装饰器Decorator
    本篇内容介绍了“如何使用Python装饰器Decorator”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1. 叠加使用Pyth...
    99+
    2023-06-15
  • Python语法详解之decorator装饰器
    python 是一门优雅的语言,有些使用方法就像魔法一样。装饰器(decorator)就是一种化腐朽性为神奇的技巧。最近一直都在使用 Tornado 框架,一直还是念念不忘 Flas...
    99+
    2024-04-02
  • Python Decorator的设计模式实例分析
    本篇内容介绍了“Python Decorator的设计模式实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!关于代理模式、装饰...
    99+
    2023-07-02
  • Decorator Pattern怎么用
    这篇文章给大家介绍Decorator Pattern怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。装饰器模式(Decorator Pattern) 的目的非常简单,那就是:在不修...
    99+
    2024-04-02
  • Python Decorator的设计模式演绎过程解析
    目录关于代理模式、装饰模式Python中的代理/装饰还有什么不理想的地方呢?补充关于代理模式、装饰模式 设计模式中经常提到的代理模式、装饰模式,这两种叫法实际上是说的同一件事,只是侧...
    99+
    2024-04-02
  • Python中如何理解和使用装饰器 @decorator
    Python中如何理解和使用装饰器 @decorator,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的装饰器(decorator)是一个很棒的机制...
    99+
    2023-06-02
  • ES7中Decorator有什么用
    小编给大家分享一下ES7中Decorator有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Decorator 提供了一种...
    99+
    2024-04-02
  • 一文秒懂vue-property-decorator
    目录我们来看下页面上代码展示:1.@Component(options:ComponentOptions = {})2.@Prop(options: (PropOptions | C...
    99+
    2024-04-02
  • 12步入门Python中的decorator装饰器使用方法
    装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数...
    99+
    2022-06-04
    使用方法 入门 decorator
  • es6中语法糖Decorator怎么用
    这篇文章主要介绍了es6中语法糖Decorator怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Decorator(修饰器/装饰器)是...
    99+
    2024-04-02
  • Python Decorator装饰器的创建方法及常用场景分析
    目录前言一、创建方式二、常用场景前言 1.装饰器本质是一个语法糖,是对被装饰方法或类进行的功能扩充,是一种面向切面的实现方法2.装饰器可以分成方法装饰器和类装饰器,他们的区别是一个是...
    99+
    2024-04-02
  • Decorator装饰器模式怎么应用
    本篇内容主要讲解“Decorator装饰器模式怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Decorator装饰器模式怎么应用”吧! Decorat...
    99+
    2024-04-02
  • antdvuev-decorator的取值与赋值问题
    目录antd vue v-decorator的取值与赋值ant design vue之v-decorator问题1.在template中直接使用2.在script中设置校验规则3. ...
    99+
    2023-05-17
    antd vue v-decorator v-decorator的取值 v-decorator的赋值
  • 分析Python中设计模式之Decorator装饰器模式的要点
    先给出一个四人团对Decorator mode的定义:动态地给一个对象添加一些额外的职责。 再来说说这个模式的好处:认证,权限检查,记日志,检查参数,加锁,等等等等,这些功能和系统业务无关,但又是系统所必须...
    99+
    2022-06-04
    模式 要点 Python
  • Python编程中非常重要却又被严重低估的库decorator
    目录常规的装饰器使用神库带参数的装饰器签名问题有解决?总结一下本文已经收录于《Python黑魔法手册》v2.1 版本,在线文档请前往 Python黑魔法手册 2.0 文档 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作