を失わずに包まれた関数に第2の戻り値を追加しますが、応答関数は次のようにラップされソースしますエントリポイント:サードパーティ製のフレームワークでは、下位互換性
@wrap_function
def hello():
return '<b>Hello</b>'
フレームワークは応答を作成して送信しますが、この機能は「フードの下に」隠されています。
これで、Response
というクッキーなどのパラメータを自分の関数hello
から設定する必要があります。ラッパーの変更がなければ不可能と思われるので、私はフレームワークに貢献することにしました。
私は最初に、ラップされた関数(hello
)から任意の値を応答パラメータで返してから、add_context
の中で解析しました。後方互換性が重要であることに注意してください。 "古いスタイルの"関数は応答パラメータとともに "new"と同様に機能するはずです。だから、hello
と一緒に、ラッパーはこのような機能をサポートする必要があります:
@wrap_function
def ping():
return '<b>Hello</b>', {'cookies': [('te', 'st')]}
しかし、私のためとして、それは間違いなくハックの仕事です。おそらく、互換性を失うことなく、ラップされた関数の戻り値を変更するために、そのような変更やより良いアプローチを実装するためのベストプラクティスがありますか?