在多个文件中使用导入的模块

时间:2010-12-03 19:23:32

标签: python module import reusability

这个问题有点笨,但我必须知道。有没有办法在其他导入的模块中使用导入的模块?

我的意思是,如果我这样做:

-main file -

import os  
import othermodule  

othermodule.a()

-othermodule -

def a():
  return os.path.join('/', 'example') # Without reimporting the os module

文件无法识别os模块。有没有办法“重用”os模块?

3 个答案:

答案 0 :(得分:5)

没有必要这样做,Python只加载一次模块(除非你卸载它们)。

但是如果你真的遇到模块无法访问标准库的情况(注意解释???),你可以简单地访问主模块中的os模块(例如{{1 ,模块只是导入模块名称空间时的变量。)

如果已加载mainfile.os模块,您也可以使用os访问该模块。

答案 1 :(得分:3)

你必须将import os放在othermodule.py中(或者,如果“主文件”不需要os本身)。这是一个特点;这意味着othermodule不必关心“主文件”中的垃圾。 Python不会两次读取os的文件,所以不要担心。

如果由于某种原因需要获取主文件中的变量,可以使用import __main__进行操作,但这被认为是应该避免的事情。

如果您需要在导入后重新读取模块,则可能应该使用execfile而不是import

答案 2 :(得分:1)

Python只导入一次模块。任何后续的导入调用,只需访问现有的模块对象。