2016-04-25 2 views
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'] 

なぜ?

答えて

関連する問題