`
androider
  • 浏览: 748094 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Python function decorators

阅读更多
首先定义你自己的方法或者函数。如:
def f(): pass

然后定义修饰函数或者方法
def H(func):
    print 'do H'
    return func

那么如果你给f加上了修饰H那就等于 f = H(f)

合起来的代码是:
def H(func):
    print 'do H'
    return func

@H
def f(): pass

修饰函数或者方法还可以带参数,同时也可以在真正的函数调用前或者后利用修饰函数作一些事,这里就不详说了。看代码:
def A(arg):
    print 'A arg = ', arg #传了参数给修饰函数
    def _A(func):
        def new_func(*args, **argkw):
            result = func(*args, **argkw)
            if result: #在调用func之后作一些工作
                print 'extra works', result
                return result + 'extra'
            else:
                return result
        return new_func
    return _A #又返回了一个新的修饰函数

@A('hello')
def f(args):
    print 'do f function'
    return "f function's args"

if __name__ == '__main__':
    f('f args')

显示结果

A arg =  hello
do f function
extra works f function's args

这里 f = _A(f) ,而 _A = A(arg)
分享到:
评论

相关推荐

    python-装饰器Decorators.pdf

    ### Python装饰器详解 #### 一、什么是装饰器? 装饰器是Python中一个非常重要的特性。简单来说,装饰器就是一个可以修改其他函数功能的函数。它们可以帮助我们编写更加简洁、可读性更强的代码,同时也使得代码...

    Python库 | aws_lambda_decorators-0.45-py3-none-any.whl

    **Python库aws_lambda_decorators-0.45-py3-none-any.whl详解** `aws_lambda_decorators` 是一个Python库,专为Amazon Web Services(AWS)的Lambda服务设计,用于简化函数装饰器的使用,从而更高效地开发和管理...

    FluentPython英文正式版(非提前版)

    这包括函数装饰器(function decorators)、高阶函数(higher-order functions)、闭包(closures)等概念。 4. 面向对象的惯用法:通过学习引用、可变性、接口、运算符重载以及多重继承来构建类。这会帮助读者更好...

    Python.Essentials.1784390348

    Basic Function Definitions Chapter 8. More Advanced Functions Chapter 9. Exceptions Chapter 10. Files, Databases, Networks, And Contexts Chapter 11. Class Definitions Chapter 12. Scripts, Modules, ...

    Head First Python , Second Edition by Paul Barry 2016年出版 英文版

    10 Function Decorators: Wrapping Functions 363 11 Exception Handling: What to Do When Things Go Wrong 413 113⁄4 A Little Bit of Threading: Dealing with Waiting 461 12 Advanced Iteration: Looping like...

    Functional Python Programming(PACKT,2015)

    With Functional Python Programming by your side you’ll understand the core concepts of function Python, its impact on the programming workflow, and how to implement it in Python, giving you the ...

    Python Tricks - A Buffet of Awesome Python Features

    装饰器 (Decorators) 装饰器是Python中非常强大的一个功能,它允许程序员在不修改原函数的基础上为其添加新的功能。装饰器本质上也是一个函数,它接受一个函数作为输入并返回一个新的函数。例如: ```python def my...

    python3.6.5参考手册 chm

    PEP 3129: Class Decorators PEP 3141: A Type Hierarchy for Numbers The fractions Module Other Language Changes Optimizations Interpreter Changes New and Improved Modules The ast module The future_...

    Fluent.Python.1491946008

    Function decorators and closures Part IV. Object Oriented Idioms Chapter 8. Object references, mutability and recycling Chapter 9. A Pythonic object Chapter 10. Sequence hacking, hashing and slicing...

    python tricks

    - **装饰器(Decorators)**:这是一种强大的特性,允许开发者修改函数的行为而无需更改其源代码。例如: ```python def my_decorator(func): def wrapper(): print("Something is happening before the ...

    python code patterns

    #### Function Decorators (函数装饰器) - **无参装饰器**:简单地增强或修改函数行为。 - **带参装饰器**:支持传递参数配置装饰器的行为。 ### Metaprogramming (元编程) #### Basic Metaprogramming (基础元...

    PyPI 官网下载 | aws_lambda_decorators-0.18-py3-none-any.whl

    `aws_lambda_decorators` 是一个 Python 库,它为 AWS Lambda 函数提供了装饰器(decorators)的支持,便于开发者更简洁、高效地编写和管理在 AWS Lambda 平台上运行的代码。这个库是针对 Python 3 编写的,因为...

    Intermediate Python

    This is a new python book that introduces some intermediate tech such as advanced function, decorators, generators etc.

    Python 程序执行时间分析器 Chronic.zip

    Chronic 的工作原理主要基于装饰器(decorators)和上下文管理器(context managers)。装饰器是一种特殊类型的函数,可以在不修改原始代码的情况下增强或修改其功能。在 Chronic 中,你可以使用装饰器来标记需要...

    httmock针对Python26和32生成伪造请求的库

    在Python中,httmock通过装饰器(decorators)的方式来使用,这使得它可以轻松地与现有的测试框架如unittest、pytest等结合。你只需在测试函数之前添加httmock的装饰器,就可以指定哪些HTTP请求应被mock处理。例如:...

    Python 2.6 Quick Reference (Letter) (2009).pdf

    Statements: assignment, conditional expressions, control flow, exceptions, name space, function def, class def ?Iterators; Generators; Descriptors; Decorators ?Built-in Functions ?Built-in ...

    Python进阶

    装饰器(Decorators)是Python中一个强大且独特的功能,它允许开发者在不修改原函数定义的基础上给函数添加额外的功能。装饰器本质上是一个接收函数作为参数并返回一个新函数的函数。它在授权、日志记录、性能测试等...

    Python Cookbook, 2nd Edition

    Python Cookbook, 2nd Edition By David Ascher, Alex Martelli, Anna Ravenscroft Publisher : O'Reilly Pub Date : March 2005 ISBN : 0-596-00797-3 Pages : 844 Copyright Preface The ...

Global site tag (gtag.js) - Google Analytics