[英]In Python, how can I access an instance created in main module from other module?
[英]Python: class instance created in module function not visible from other modules
我要模塊,tools.py和env.py。 在工具模塊中,我正在做一些檢查是否存在某些文件。
根據這些檢查的結果,我只想初始化env模塊中兩個可能的類之一的實例。 我希望這些實例對象成為env模塊的一部分,因為我想從env模塊而不是從tools模塊導入環境設置。 這就是為什么我編寫了一個在env模塊內創建實例的函數的原因。
tools.py
# tools.py
import env
if file_exists == True:
env.create_env_obj(True)
else:
env.create_env_obj(False)
信封
# env.py
def create_env_obj(file_exists):
global se
if file_exists == True:
print("Creating environment A")
se = SetEnvForExistingFile()
elif file_exists == False:
print("Creating environment B")
se = SetEnvForNoExistingFile()
創建對象之后,我實際上可以在工具模塊中使用環境對象,但是由於env的導入是在實例創建之前完成的,所以我的IDE到處都會標記錯誤。
實例也在該函數create_env_obj的范圍內創建。 因此它對我的工具模塊不可見。 我嘗試重新加載,但沒有任何改變。
現在,問題是它實際上可以在任何地方使用,但是到處都是錯誤,這讓我覺得我在這里部署了錯誤的做法。 哪種存檔更干凈的解決方案?
嘗試這個:
# env.py
se = None
def create_env_obj(file_exists):
global se
if file_exists:
print("Creating environment A")
se = SetEnvForExistingFile()
else:
print("Creating environment B")
se = SetEnvForNoExistingFile()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.