`

python 修饰器

阅读更多
def wrapper1(function):
    print("In wrapper1 pre")
    @functools.wraps(function)
    def wrapper(*args, **kwargs):
        print("In wrapper1 wrapper")
        args = [float(arg) for arg in args]
        return float(function(*args, **kwargs))
    print("In wrapper1 post")
    return wrapper

def wrapper2(function):
    print("In wrapper2 pre")
    @functools.wraps(function)
    def wrapper(*args, **kwargs):
        print("In wrapper2 wrapper")
        args = [float(arg) for arg in args]
        return float(function(*args, **kwargs))
    print("In wrapper2 post")
    return wrapper

@wrapper1
@wrapper2                     
def mean(first, second, *rest):
    number = (first, second) + rest
    return sum(number) / len(number)
In wrapper2 pre
In wrapper2 post
In wrapper1 pre
In wrapper1 post
mean(1,'5')
In wrapper1 wrapper
In wrapper2 wrapper


分享到:
评论

相关推荐

    Python使用修饰器执行函数的参数检查功能示例

    主要介绍了Python使用修饰器执行函数的参数检查功能,结合具体实例形式分析了Python实现修饰器针对函数参数检查的原理、步骤与相关操作技巧,需要的朋友可以参考下

    Python编程——修饰器.docx

    Python编程——修饰器.docxPython编程——修饰器.docxPython编程——修饰器.docxPython编程——修饰器.docxPython编程——修饰器.docxPython编程——修饰器.docxPython编程——修饰器.docxPython编程——修饰器.docx

    Python使用修饰器进行异常日志记录操作示例

    主要介绍了Python使用修饰器进行异常日志记录操作,结合实例形式分析了Python基于修饰器的log日志文件操作的相关实现技巧,需要的朋友可以参考下

    python数据类dataclass修饰器(csdn)————程序.pdf

    python数据类dataclass修饰器(csdn)————程序

    05-python-迭代器-生成器-with语句和上下文管理器-修饰符

    python学习笔记,包含迭代器-生成器-with语句和上下文管理器-修饰符

    python-goto:一个函数修饰器,重写字节码,以在Python中启用goto

    去 在Python中使用goto函数修饰器。 在Python 2.6到3.7和PyPy上进行了测试。安装pip install goto-statement用法from goto import with_goto@ with_gotodef range ( start , stop ): i = start result = [] label . ...

    Python面向对象编程指南

    分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型、装饰器和mixin—横切方面;第2部分讲述持久...

    PYTHON 面向对象编程指南

    分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、抽象基类设计的一致性、可调用对象和上下文的使用、创建容器和集合、创建数值类型、装饰器和mixin—横切方面;第2部分讲述持久...

    Python核心编程第二版

    很不错的python书 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   1.3.5 可...

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

    Python 程序执行时间分析器 Chronic ,Chronic 介于简单的定时器和分析器。通过添加修饰符或包装代码语句来获得程序执行时间。Chron...

    Python拾趣009 修饰器@简介和简单应用

    @ 修饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关...

    Python编码风格指南(中文版)

    1. 概述 1.1 Python 语言方面的准则 1.2 Python 编码风格方面...3.7 Python 解释器 3.8 注释 3.9 类 3.10 字符串 3.11 TODO style 3.12 import 分组及顺序 3.13 语句 3.14 访问控制 3.15 命名 3.16 程序入口 3.17 总结

    Python面向对象二 封装与修饰器

    Python面向对象二 封装与修饰器1. 特殊方法2. 封装2.1 封装的引入2.2 封装实例一2.3 封装实例二3. property装饰器 1. 特殊方法 • 在类中可以定义一些特殊方法也称为魔术方法 • 特殊方法都是形如 xxx()这种形式 • ...

    python中的global关键字的使用方法

    摘要 global 标志实际上是为了提示 ... 注:上面三句话的意思就是,python 解释器发现函数中的某个变量被 global 关键字修饰,就去函数的 __globals__ 字典变量中寻找(因为 python 中函数也是一等对象);同

    python实现装饰器、描述符

    装饰器进阶:property、staticmethod、classmethod源码分析(python代码实现) 装饰器基础 无参装饰器 ''' 假定有一个需求是:打印程序函数运行顺序 此案例打印的结果为: foo1 function is starting foo2 ...

    python面向对象(下).html

    什么是封装?为什么要进行封装?继承又分为几种,了解什么是类方法?什么是修饰器?如何调用类方法?什么是静态方法?

    Python装饰器的函数式编程详解

    Python的装饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做...

    Python核心编程第二版(ok)

    Python核心编程第二版(ok) 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   ...

Global site tag (gtag.js) - Google Analytics