我检查了一些像this这样的答案,但我还有另一个问题,即从python中的模块导入哪些属性。
例如,我有一个模块temp9.py
:
a=10
b=20
print('a={0}, b={1}'.format(a,b))
def t9outer():
print('in imported module')
def t9inner():
print('inner function')
然后我像这样导入这个模块:import temp9
。如果使用此命令获取导入文件的属性:
list(filter(lambda x: not x.startswith('__'),dir(temp9)))
我得到了这个输出:
['a', 'b', 't9outer']
我的问题是
a
和b
仅在temp9
范围内是全球性的,而不是跨越模块(如上面的答案所示),那么它是如何导出的?
为什么t9inner()
未被导入,即使它被t9outer()
括起来,会被导入?
答案 0 :(得分:4)
两个问题的答案都是一样的。在模块级别定义的所有内容都是导入的;未在模块级别定义的任何内容都不会导入。