2015-08-27 81 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蟒蛇后调用该函数将使用运行它新变量。