文档章节

Python装饰器demo

健康的程序员
 健康的程序员
发布于 2017/09/12 13:41
字数 121
阅读 6
收藏 0

无参

def test(fun):
    print('log - 1')

    def decorator(a, b):
        print('log - 3')
        fun(a, b)
        print('log - 4')

    print('log - 2')
    return decorator


@test
def fun(a, b):
    print(a + b)


if __name__ == '__main__':
    fun(10, 20)


output:
-----------------
log - 1
log - 2
log - 3
30
log - 4

有参

def test(arg):
    print('log - 1')

    def _start(fun):
        print('log - 3')

        def decorator(a, b):
            print('log - 5 ')
            fun(a, b)
            print(' log - 6')

        print('log - 4')
        return decorator

    print('log - 2')
    return _start


@test('abc')
def fun(a, b):
    print(a + b)


if __name__ == '__main__':
    fun(10, 20)


output:
--------------------
log - 1
log - 2
log - 3
log - 4
log - 5 
30
 log - 6

 

© 著作权归作者所有

共有 人打赏支持
健康的程序员
粉丝 7
博文 170
码字总数 47593
作品 0
杭州
程序员
私信 提问
转载:唐磊的个人博客《python中decorator详解》【转注:深入浅出清晰明了】

转载请注明来源:唐磊的个人博客《python中decorator详解》 前面写python的AOP解决方案时提到了decorator,这篇文章就详细的来整理下python的装饰器——decorator。 python中的函数即objects...

laugh2last
2015/08/17
0
0
每周一个 Python 模块 | functools

functools 是 Python 中很简单但也很重要的模块,主要是一些 Python 高阶函数相关的函数。 该模块的内容并不多,看 官方文档 也就知道了。 说到高阶函数,这是函数式编程范式中很重要的一个概...

yongxinz
11/12
0
0
Django中六个常用的自定义装饰器

装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式。这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为,...

j_hao104
07/03
0
0
python 装饰器及标准库functools中的wraps

最近在看 flask的视图装饰器 时,忽然想起预(复)习一下python的装饰器. 这里有一篇比较好的讲解装饰器的书写的 Python装饰器学习(九步入门) . 这里不单独记录装饰器的书写格式了,重点是工作...

L很失败L
2015/08/20
0
0
设计模式之:理解 Python 中的装饰器

1、问题 文章先由stackoverflow上面的一个问题引起吧,如果使用如下的代码: @makebold @makeitalic def say(): return "Hello" 打印出如下的输出: <b><i>Hello<i></b> 你会怎么做?最后给出......

大数据之路
2013/07/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker Java API 选型

因为工作原因需要使用Java调用装有docker环境的机器完成打镜像 上传镜像库的操作,进过调查,发现了两个比较常用的Java API工具,分别是 docker-java 和 spotify-docker-client,Github地址分...

MrPei
7分钟前
1
0
关ASCII码中的特殊字符10和13

10 : 是 LF 即 "\n" 13:是CR 即 "\r" 在不同的操作系统中,表示的方式是不一样的。在UNIX系统中,换行符使用"\n" , 在 windows 系统中换行使用 "\r\n"; 在旧版macOS中换行使用回车符"/r",...

Canaan_
9分钟前
0
0
MaxCompute 表(Table)设计规范

表的限制项 表(Table)设计规范 表设计主要目标 表设计的影响 表设计步骤 表数据存储规范 按数据分层规范数据生命周期 按数据的变更和历史规范数据的保存 数据导入通道与表设计 分区设计与逻辑...

阿里云官方博客
16分钟前
1
0
border实现等高布局

效果图 实现上图效果的全部html+css代码 <div class="box"> <nav> <h3 class="nav">导航1</h3> <h3 class="nav">导航2</h3> </nav> <section> <div cla......

呵呵闯
26分钟前
1
0
MaxCompute 表(Table)设计规范

表的限制项 表(Table)设计规范 表设计主要目标 表设计的影响 表设计步骤 表数据存储规范 按数据分层规范数据生命周期 按数据的变更和历史规范数据的保存 数据导入通道与表设计 分区设计与逻辑...

阿里云云栖社区
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部