グローバルを使用してコンテキストマネージャから興味深い値を取得するよりも良い方法はありますか?
@contextmanager
def transaction():
global successCount
global errorCount
try:
yield
except:
storage.store.rollback()
errorCount += 1
else:
storage.store.commit()
successCount += 1
その他の可能性:
シングルトン
一種のグローバル...
コンテキストマネージャへの引数としてのタプル
関数をより問題に特化したものにする / 再利用性を低くする
コンテキストマネージャへの引数として特定の属性を保持するインスタンス
タプルと同じ問題だが、より読みやすい
値を保持しているコンテキストマネージャーの最後で例外を発生させます。
本当に悪い考え