这个问题有点笨,但我必须知道。有没有办法在其他导入的模块中使用导入的模块?
我的意思是,如果我这样做:
-main file -
import os
import othermodule
othermodule.a()
-othermodule -
def a():
return os.path.join('/', 'example') # Without reimporting the os module
文件无法识别os模块。有没有办法“重用”os模块?
答案 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只导入一次模块。任何后续的导入调用,只需访问现有的模块对象。