タイトルは問題ではありません。この問題はすでに「不変で変更可能な」ものを理解することで解決しました。 しかし、私はそれについてちょっと分かりました。 私は彼をチューニングせずに、最初に作成したシャドウを作成するだけで、オブジェクトに別の関数がアピールできるようにします。 私はコードであなたを示しています。私は不変の新しいオブジェクトを作成したdidntのためリストは "global"に一変します - python
def text():
print x
x = 6
text()
この例では、うまく動作whill。 この:
def text():
print x
text()
x = 6
整数はグローバル変数ではないので、これは動作しません。
グローバル化しないで新しいオブジェクトを作成したときに、どういうことが起こりますか?メモリ内のどこにこのオブジェクトがあるかによって、私は別のスコープでそれに近づくことができました。なぜそれほどグローバルとは異なるのでしょうか?
Pythonコードはコンパイルされているのではなく解釈されるので、変数xは、2番目の例でtext()が呼び出されたときには決して起こりません。それは決して起こらなかった理由です。 – thiruvenkadam