python设计模式第八天装饰器模式

Posted liuzhiqaingxyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python设计模式第八天装饰器模式相关的知识,希望对你有一定的参考价值。

1.定义

使用包装的释放扩展类的功能,但是不使用继承

 

2.使用场景

 

3.代码实现

#!/usr/bin/env python
#! _*_ coding:UTF-8 _*_

def MyDecorator(before_func, after_func):
    def decorator(main_func):
        def wrapper(request, kargs):

            before_result = before_func(request, kargs)
            if before_result is not None:
                return before_result

            main_result = main_func(request, kargs)
            if main_result is not None:
                return main_result

            after_result = after_func(request, kargs)
            if after_result is not None:
                return after_result

        return wrapper
    return decorator


@MyDecorator(AccountFilter.Before, AccountFilter.After)
def foo(request, kargs):
    pass

 

以上是关于python设计模式第八天装饰器模式的主要内容,如果未能解决你的问题,请参考以下文章

学习python课程第八天

python第八天

Python第八天

Python之第十八天的努力--装饰器初识

Python第八天

python第十八天(装饰器)