2

可変数のコンテキストを確立できるように with ステートメントをフォーマットする方法はありますか? たとえば、4 つのステートメントが必要な場合もあれば、2 つだけが必要な場合もあります。現状では、使用できるが使用していないすべてのオブジェクトのダミー バージョンを呼び出す可能性に直面しています。次に、使用していないステートメントで満たされたダミー オブジェクトを含むステートメントを使用して、コードを 16 個入れ子にします。私はPython 2.6.6を使用しているため、圧縮された構文もサポートしていません。

余談ですが、with ステートメントは、機能するクリーンアップ コードを取得する唯一の方法ですか? デストラクタメソッドに似たものを取得する方法は他にありませんが、標準__del__メソッドのように使用するのは間違いではありませんか?

4

1 に答える 1

4

contextlib.nestedそのために作られました。

ドキュメントの例:

from contextlib import nested

with nested(*managers):
    do_something()
于 2012-09-04T20:37:53.640 に答える