2015-08-27 124 views
1

python_import_test2.py文件中導入模塊:變化而變化(變量和因變量)在Python

AAA = 'test2' 
BBB = AAA + '_BBB' 
def showBBB(): 
    print AAA 
    print BBB 

python_import_test1.py文件:

import python_import_test2 as testimport 
testimport.AAA = 'test1' 
testimport.showBBB()` 

作爲一個出來,我得到:

test1 
test2_BBB 

如何獲得:

test1 
test1_BBB 

+0

您可以在函數內部而不是在它之前分配'BBB' – khelwood

回答

0

這是因爲在您重新初始化AAA後,該值未分配給BBB。當您導入的發言:

import python_import_test2 as testimport 

AAA = 'test2的'

BBB = 'test2_BBB'

然後重新初始化AAA的價值現在

值,該值AAA = 'TEST1'

BBB的= 'test2_BBB' 的值的

這就是你所得到的。

您可以在函數定義中初始化BBB以獲得所需的結果。

python_import_test2.py文件:

AAA = 'test2' 

def showBBB(): 
    print AAA 
    BBB = AAA + '_BBB' 
    print BBB 
0

由於BBBpython_import_test2.py一個全局變量,當您導入模塊蟒蛇計算全局變量,所以這將是test2_BBB,然後你沒有改變它,只是改爲AAA

如果你想改變這個變量,你可以在你的函數範圍內改變它。

def showBBB(): 
    print AAA 
    BBB = AAA + '_BBB' 
    print BBB 

請注意,我們所有的蟒蛇大約是運行時間,所以直到你不運行功能Python不執行它,當你重新分配AAA蟒蛇後調用該函數將使用運行它新變量。