1

関数の終了時に特定の関数呼び出しを行う必要がある django システムに少しのコードを追加中です。私が更新しているほとんどのコードには、全体にいくつかの終了点があり、それぞれの直前にワンライナーを追加する必要があります。少し醜い。

私がやりたいことは、「この関数を終了したら、これを実行してください」と単純に言うことです。これは、atexit モジュール (とにかくこれまでに見つけたものから) によく似ていますが、関数ではなく関数を終了するときにトリガーされます。スクリプト全体。

そのように機能するものはありますか?

(ちなみにPython 2.7.3を使用しています)

4

2 に答える 2

3

デコレータを使用できます。これは単に関数を囲むラッパーです。呼び出す前でも呼び出した後でも、好きなことを行うことができます。

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

そしてそれを使用します:

@do_after
def my_view(request):
    ...
于 2013-06-20T19:17:48.690 に答える
0

その関数を呼び出す代わりに、両方を呼び出す関数を作成します

-function a (あなたの関数)

-function b (終了関数コード)

代わりにこのメタ関数を呼び出します

于 2013-06-20T19:17:23.140 に答える