怎么做...导入...工作?

时间:2016-07-21 04:51:11

标签: python-2.7 python-import

我有一个模块test.py,如下所示:

def a():
    return "Hey!"

def b():
    return a()

在另一个模块中,我导入了函数b,如下所示:

from test import b

现在,当我在第二个模块中print b()时,我得到Hey!作为输出。但考虑到我只导入了函数b而不是a,我预计会出现一个NameError。

from x import y语句是否自动从y导入x的所有相关函数和变量?

1 个答案:

答案 0 :(得分:0)

from test import b 

这不会从b导入除test以外的任何功能。它只是使函数b()可用于当前模块。但是如果你使用

import test

然后您可以访问test中的所有功能。现在,您可以将test中的任何函数调用到当前模块中。

最好的方法是在当前模块中使用globals()。在第一种情况下(即from test import b),globals()将显示模块b中的函数test,这意味着您可以访问 {{来自b的方法。

但是,在后一个(即test)中,import test将显示模块globals()本身,而不是函数test。因此,您可以访问整个模块b及其所有方法。

您可能会发现this blog有帮助。