python从模块导入什么属性?

时间:2017-09-17 17:04:49

标签: python

我检查了一些像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']

我的问题是

  • ab仅在temp9范围内是全球性的,而不是跨越模块(如上面的答案所示),那么它是如何导出的?

  • 为什么t9inner()未被导入,即使它被t9outer()括起来,会被导入?

1 个答案:

答案 0 :(得分:4)

两个问题的答案都是一样的。在模块级别定义的所有内容都是导入的;未在模块级别定义的任何内容都不会导入。