JON*_*402 8 python import python-3.4
我想这是一个普遍的问题,如果没有张贴在正确的地方,那就很抱歉.
比方说,我有一个a导入功能os.如果我要多次从另一个文件调用此函数,我假设导入也会多次执行?有没有办法只导入模块,如果它不存在?
基本上,我有一个类调用从各种文件导入的多个函数,而不是导入整个文件我认为它更容易导入只是函数但现在我想知道我是否会在长期与自己头痛进口过剩.
dim*_*-an 22
正如描述的蟒蛇文档中,当蟒蛇看到它下面的一些事情的import语句:
import foo模块的名称foo将是fooimport foo as bar模块的名称foo将是barfrom foo import bar as bazpython bar在模块中找到函数(或其他)foo并将此函数绑定到namebaz所以每个模块只导入一次.
为了更好地理解导入机制,我建议创建玩具示例.
档案module.py:
print("import is in progress")
def foo():
pass
Run Code Online (Sandbox Code Playgroud)
档案main.py:
def foo():
print("before importing module")
import module
module.foo()
print("after importing module")
if __name__ == '__main__':
foo()
foo()
Run Code Online (Sandbox Code Playgroud)
将上面的文件放在同一目录中.当module.py正在导入它打印import is in progress.当你启动main.py它会尝试导入module几次,但输出将是:
before importing module
import is in progress
after importing module
before importing module
after importing module
Run Code Online (Sandbox Code Playgroud)
因此导入只发生一次.您可以调整此玩具示例以检查您感兴趣的案例.