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

python中有没有一种方法可以在退出函数时触发操作,python,events,Python,Events,我正在向django系统添加一些代码,这些代码需要在退出函数时进行特定的函数调用。我正在更新的大多数代码都有几个退出点,这要求我在每个退出点之前添加一个一行程序。有点难看 我想做的是简单地说,“退出此函数后,执行此操作”,就像atexit模块一样(从我目前发现的情况来看),但在退出函数而不是整个脚本时触发 有什么我可以用的方法吗 (顺便说一句,我使用的是Python 2.7.3)与其调用该函数,不如创建一个同时调用这两个函数的函数 -功能a(你的功能) -功能b(退出功能代码) 改为调用此元函数

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

我想做的是简单地说,“退出此函数后,执行此操作”,就像atexit模块一样(从我目前发现的情况来看),但在退出函数而不是整个脚本时触发

有什么我可以用的方法吗


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

与其调用该函数,不如创建一个同时调用这两个函数的函数

-功能a(你的功能)

-功能b(退出功能代码)


改为调用此元函数

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

def do_after(func):
    def wrapper(*args, **kwargs):
        func(*args, **kwargs)
        call_my_extra_function()
    return wrapper
并使用它:

@do_after
def my_view(request):
    ...

decorator是一种解决“特定函数调用”是否需要访问函数中的任何局部变量的方法,您需要从中调用它?用一些示例代码可能有助于澄清问题。@Aya:它真正需要访问的唯一东西是在函数参数中传递的和ID。看来装饰师会很好地完成这个任务。@JacobEwing装饰师可能是当时最干净的。您可能还希望捕获异常,调用函数,然后重新引发异常。您应该返回
func
的返回值。参数化
do\u after
也很好,这样就不局限于
调用我的额外函数了。