这是一个简单的问题,但我似乎找不到对此的任何直接解释。
在module.py
中def foo():
print("foo")
在main.py
import module
foo()
这将导致错误,提示未定义foo?当我在网上寻找答案时,我找不到任何惊奇的地方
我不打算使用
之类的东西from x import y
直接简化导入系统
答案 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 *
您(以及任何使用该代码的人)都不知道已导入了什么。甚至可能导致名称冲突。