私は好奇心が強いです。私はsooooomewhat Pythonの新しいです。私は1年ほど以上コーディングしてきましたが、私がカバーしたことは完全には理解できませんでしたが、「グローバル変数は悪い」という悪影響でした。Python:グローバル変数の代わりにリスト項目を使う
私は初心者であり、なぜグローバル変数を避けるべきか(または慎重にすべきか)というオンライン説明を理解できませんでした。私は誰もが心に留めていたことをすべて取り上げ、グローバル変数は単にランタイム中に自分のコードを惑わし、すべてのデータを食べる不吉なモンスターであるという前提を作りました。
は、だから私は、次の操作を行うようになった:
>>> SomeVar = [0] # To avoid the 'global' keyword, I'll just make a single list item.
>>>
>>> def increment(): # Hey look, it's practically global!
>>> SomeVar[0] += 1
>>>
>>> increment()
>>> increment()
>>>
>>> SomeVar
[2]
いくつかの時間後、私は最終的に私が印象Iを得るために始めている、問題のいくつかの実際の研究を行うための知識と経験を持っているがポイントを逃した可能性があります。グローバル化が名前空間を占有し、マルチスレッドで問題を提示する可能性があること、そしてあまりにも多くの関数が同時にアクセスすることが困難になることは知っていますが、私はまだ理解できません。聞きたかった。
私のlist-global-aversion変数は、実際にはのの問題がグローバル変数に存在するかどうかを確認するのに役立つのですか?私は、前述の問題(マルチスレッド、スパゲッティコード)でうまくいかない理由を知ることができますが、それはまったく役に立ちますか?
ありがとうございます!
'SomeVar'は*グローバル変数です。あなたが避けたのは 'global'キーワードを使うことだけです。 – timgeb
あなたの例では、 'globals()'と入力すると、SomeVarがリストであっても数字であっても、グローバル辞書に表示されます。 :-) –