Python中修饰器的定义与使用

2016-10-18 董付国 Python小屋 Python小屋

修饰器(decorator)是函数嵌套定义的另一个重要应用。修饰器本质上也是一个函数,只不过这个函数接收其他函数作为参数并对其进行一定的改造之后使用新函数替换原来的函数。修饰器的主要应用场合是定义多个函数调用之前或之后需要执行的通用代码,提高代码复用度。后面第6章中的静态方法、类方法、属性等也都是通过修饰器实现的,Python中还有很多这样的用法。下面的代码演示了修饰器的定义与使用方法。

def before(func):  #定义修饰器

    def wrapper(*args, **kwargs):

        print('Before function called.')

        return func(*args, **kwargs)

    return wrapper


def after(func): #定义修饰器

    def wrapper(*args, **kwargs):

        result = func(*args, **kwargs)

        print('After function called.')

        return result

    return wrapper


@before

@after

def test():  #同时使用两个修饰器改造函数

    print(3)

#调用被修饰的函数

test()


上面代码的运行结果为:

Before function called.

3

After function called.


附:”第6届高等学校计算机程序设计课程研讨会”通知

完整版通知和回执单可以联系会务组索要。