python 3,无法理解导入系统

时间:2019-07-28 03:57:39

标签: python-3.x

这是一个简单的问题,但我似乎找不到对此的任何直接解释。

在module.py

def foo():
 print("foo")

在main.py

import module
foo()

这将导致错误,提示未定义foo?当我在网上寻找答案时,我找不到任何惊奇的地方

我不打算使用

之类的东西
from x import y

直接简化导入系统

4 个答案:

答案 0 :(得分:1)

导入外部模块时,它将生成一个名为module的变量,其中包含该模块中的所有类,函数和变量。要访问“ foo”功能,您需要首先访问该模块:

module.foo()

要导入“ foo”功能,您可以从模块中导入所有内容,如下所示:

from module import *

现在您可以轻松地做到:foo()

您还可以为模块设置自定义名称,例如:

import module as M

现在您可以像这样运行'foo':

M.foo()

PS:我不是英国人

答案 1 :(得分:1)

声明

import module

使模块module的名称可用。因此,您可以使用module.foo()

如果您想在不“限定”的情况下呼叫foo()

from module import foo

from module import *

但是后者是个坏主意,因为您可能会导入意外的名称,这可能会与您从其他模块导入的其他名称发生冲突。

答案 2 :(得分:0)

您可以通过这种方式使用模块

import module
module.foo()

答案 3 :(得分:0)

from model import foo

是各种

的首选方式

from model import *

您(以及任何使用该代码的人)都不知道已导入了什么。甚至可能导致名称冲突。