python中是否有一种方法可以在退出函数时触发操作

时间:2013-06-20 19:14:37

标签: python events

我正在向django系统添加一些代码,需要在退出函数时进行特定的函数调用。我正在更新的大多数代码都有几个退出点,这要求我在每个代码之前立即添加一个单行。有点难看。

我想做的是简单地说,“在退出此功能时,执行此操作”,就像atexit模块(从目前为止我发现的那样),但是在退出函数时被触发而不是整个剧本。

我可以使用哪种方式吗?

(顺便说一句,我使用的是Python 2.7.3)

2 个答案:

答案 0 :(得分:3)

您可以使用装饰器。这只是一个包围函数的包装器:你可以在调用它之前或之后做你喜欢的事。

def do_after(func):
    def wrapper(*args, **kwargs):
        func(*args, **kwargs)
        call_my_extra_function()
    return wrapper

并使用它:

@do_after
def my_view(request):
    ...

答案 1 :(得分:0)

不要调用该函数,而是创建一个同时调用

的函数

-function a(你的功能)

-function b(退出功能代码)

改为调用此元函数