我需要模块,tools.py和env.py.在工具模块中,我正在检查某些文件是否存在。
根据这些检查的结果,我想初始化env模块中两个可能类之一的实例。我希望这些实例对象成为env模块的一部分,因为我想从env模块导入环境设置,而不是从工具模块导入。这就是为什么我在env模块中编写了一个创建实例的函数。
tools.py
# tools.py
import env
if file_exists == True:
env.create_env_obj(True)
else:
env.create_env_obj(False)
env.py
# 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()
在创建对象之后,我实际上可以在工具模块中使用环境对象,但是我的IDE会在任何地方标记错误,因为在创建实例之前已经完成了env的导入。
此外,实例是在该函数create_env_obj的范围内创建的。所以我的工具模块看不到它。 我尝试重新加载,但它没有改变任何东西。
现在,问题是它实际上无处不在,但看到各地的错误让我觉得我在这里部署了不好的做法。 存档的清洁解决方案是什么?
答案 0 :(得分:0)
试试这个:
# 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()