でグローバルに代わる:私は現在、このようなコード持っているのPython
cache = 1
def foo():
global cache
# many
# lines
# of code
cache = 2
読者がどこかglobal cache
表示されていることに気付かないことがあるのでしかし、これは、将来的に見つけにくい、バグにつながる可能性を以上。あるいは、投稿者が間違ってdef bar(): cache = 2
を追加して、global cache
を追加するのを忘れるかもしれません。
この落とし穴を避けるにはどうすればよいですか?
正確に落とし穴とは何ですか?あなたは何を達成しようとしていて、何が効いていないのですか? – BrenBarn
誰かが2番目の方法を書くとどうなりますか?それは依然としてローカル変数になります。あなたのコードに問題はありません。 – ATOzTOA
'global'宣言がなければ変数はローカルです - もし '読者'がPythonで背景を持っていれば、それはローカルだと分かります。あなたが本当にしたいのであれば、ちょうどそれが地方か何かであると言うコメントを加えてください。 – Volatility