[英]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.