[英]Using imported modules in more than one file
这个问题有点愚蠢,但我必须知道。 有什么办法可以在其他导入的模块中使用导入的模块吗?
我的意思是,如果我这样做:
-主文件-
import os
import othermodule
othermodule.a()
-其他模块-
def a():
return os.path.join('/', 'example') # Without reimporting the os module
该文件无法识别os模块。 有什么办法可以“重用” os模块吗?
无需这样做,Python仅加载一次模块(除非您卸载它们)。
但是,如果您确实遇到模块无法访问标准库的情况(需要解释一下???),则可以简单地访问主模块中的os
模块(例如mainfile.os
,模块在导入时只是变量)进入模块名称空间)。
如果os
模块已经加载,则也可以使用sys.modules["os"]
。
您还必须将import os
放在othermodule.py
中(或者,如果“ main file”不需要os本身)。 这是一个功能; 这意味着othermodule
不必关心“主文件”中的垃圾内容。 Python不会两次为os
读取文件,因此不必担心。
如果出于某种原因需要获取主文件中的变量,则可以使用import __main__
做到这一点,但这被认为是可以避免的事情。
如果需要在导入模块后重新读取模块,则可能应该使用execfile
而不是import
。
Python仅一次导入一个模块。 任何后续的导入调用,只需访问现有的模块对象即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.