我想定义同一个类的两个不同版本:
mail.prod.py
mail.devel.py
只能根据环境类型(prod / devel)使用/导入一个。我可以提供某种抽象,让其他类知道是否要导入prod或devel吗?
答案 0 :(得分:0)
您可以使用环境变量来执行此操作。您可以通过此link和Linux通过类似于
的命令在Windows中执行此操作EXPORT app_env="PROD"
现在,假设您已在您的环境中设置了名为app_env
的变量,您可以在邮件模块__init__.py
中执行此操作:
import os
if "app_env" in os.environ and os.environ['app_env'] == "PROD":
import prod as mailcfg
else:
import devel as mailcfg
此时,您应该使用mailcfg.variable
或mailcfg.DoSomething()
您的邮件模块中需要三个文件:
mail/
__init__.py
prod.py
devel.py