似乎如果我通過幾個文件中的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']
爲什麼?