私は、さまざまなセットアップ/ティアダウンの状況を構成するためのクリーンな方法として、多くのコンテキスト マネージャーを使用してきました。私のデプロイメントは Python 2.6 を対象としているため、これはcontextlib.nested
.
最近、同じコード ベースで Python 2.x と Python 3 の両方をサポートすることに関心があります。これは一部のプロジェクトでは可能でしたが、コンテキスト マネージャーの場合は次の理由で問題が発生しています。
contextlib.nested
Python 3 ではサポートされていません- Python-3 スタイルのネストされたコンテキスト マネージャー (例:
with aa() as a, bb() as b: ...
) は、2.6 ではサポートされていません。
ここには、基本的な構文上の非互換性があります。私の手に負えないさまざまな理由により、現時点では 2.7 を製品化するのは難しいかもしれませんが、コードを可能な限り将来的に保証したいと考えているため、Python 3 に関心があります。
2.6 と 3.x の同じコード ベースでネストされたコンテキスト マネージャーをサポートするための回避策を提案できる人はいますか? それとも、これは失われた原因ですか?