zoukankan      html  css  js  c++  java
  • python中装饰器之叠加装饰器(二)

    叠加装饰器

    当一个函数叠加了多个装饰器后,程序会如何运行呢?

    叠加装饰器:
        在同一个被装饰对象中,添加多个装饰器,并执行。
        @装饰1
        @装饰2
        @装饰3
        def 被装饰对象():
            pass
    
        注意: 装饰器在调用被装饰对象时才会执行添加的功能。

    装饰的顺序:由下到上(被包裹)

    执行的顺序:由上倒下(贯穿)

    def wrapper1(func):
        def inner1(*args, **kwargs):
            print('我是inner1')
            res = func(*args, **kwargs)
            print('我是inner111111111111')
            return res
    
        return inner1
    
    
    def wrapper2(func):
        def inner2(*args, **kwargs):
            print('我是inner2')
            res = func(*args, **kwargs)
            print('我是inner2222222')
            return res
    
        return inner2
    
    
    @wrapper2
    @wrapper1
    def func1():
        print('我是func1!!!!!!!!!1')
    
    
    func1()

    输出为:

    我是inner2
    我是inner1
    我是func1!!!!!!!!!1
    我是inner111111111111
    我是inner2222222
  • 相关阅读:
    ARTS第十一周
    ARTS第十周
    ARTS第九周
    一.Java技术现象
    ARTS第八周
    2019书单
    10.枚举的使用
    9.文件输入与输出
    软件模块化设计
    8.String API
  • 原文地址:https://www.cnblogs.com/Ghostant/p/11850139.html
Copyright © 2011-2022 走看看