2
複数のファイルのimport
ステートメントで同じPythonファイルをインポートしてファイルスコープ変数を変更すると、参照変更が別のモジュールに表示されないようですコンテナの変更が行われます。例えば 同じファイルスコープ変数をいくつかのPythonファイルから変更する
、
first.py
import reader
import helper
reader.change_buf('modified')
helper.foo()
second.py
まず例
import reader
def foo():
print(reader.BUF)
reader.py
buf = 'original'
def change_buf(buf):
buf = buf
出力
> python first.py
original
第二の例
first.py
import reader
import helper
reader.change_first_element('1')
helper.foo()
second.py
import reader
def foo():
print(reader.BUF)
reader.py
buf = ['0', '1', '2']
def change_first_element(new_elem):
buf[0] = new_elem
出力
> python first.py
['1', '1', '2']
なぜ?