分类: LINUX
2010-03-10 10:30:52
Ø
对于perl,我可以在一个文件内使用另外一个文件的变量。比如
a.py:
$var = 123;
require "b.pl"
b.pl:
print "var = $var\n"
如果执行perl a.pl,可以得到var = 123。
Ø
现在我想用python做同样的事情,我试验了一下方法:
a.py:
var = 123
import b
b.py:
print "var = %d" % var
Ø 执行python a.py得到NameError: name 'var' is not defined。我又 试验了把var放到一个单独的文件中:
x.py:
var = 0
a.py:
from x import *
var = 123
import b
b.py:
from x import *
print "var = %d" % var
执行python a.py之后得到var = 0,不能得到var = 123。
Ø
能够做到的一种方法是:
x.py:
var = 0
a.py:
import x
x.var = 123
import b
b.py:
import x
print "var = %d" % x.var
import module vs. from module import
import module:模块只导入一次,访问的是那个唯一 的变量。
from module import:将变量导入到局部namespace中。
Ø
能够做到的另外一种方法是:
a.py:
var = 123
import b
b.py:
import a
print "var =
%d" % a.var
这样看起来是模块的互相导入。嵌套的导入在复杂的情况下会失败,这个要再研究一下导入的顺序。