誰かがPythonのグローバルの使用とモジュール自体の参照について考えていたのだろうかと思っていました。過去に私は必要なときに、私が見つけた世界的に使用しながら、それがやや明確に第二の方法を行うには(そして最近、この構文を好む傾向があった):モジュールを指定するPythonのグローバル対の使用
import sys
mod = sys.modules[__name__]
counter = 0
def incrementGlobal():
global counter
counter += 1
def incrementMod():
mod.counter += 1
明らか
それらの両方が正常に動作しますが、もし誰何か強い意見があります(より多くのpythonic、パフォーマンスなど)、私はそれらを聞くのが大好きです。
Btwモジュールが自然にすべてのメソッドや属性を単一のクラスにカプセル化し、参照incrementmodule.IncrementClass.counterというのではなく、incrementmodule.counterを使うことができます。
どのように2番目の方が明確ですか? – delnan
私はそれがはるかにはっきりしていないと思いますが、モジュールレベルの変数がローカル変数ではなく変更されていることがすぐにわかるので、変数がグローバル宣言内にあるかどうかを確認する必要はありません。 – gnr
'global'と割り当てがそれほど遠い場合は、それよりも明瞭な問題がある;) – delnan