Python - 定义类的多个版本

时间:2014-07-17 22:02:15

标签: python django

我想定义同一个类的两个不同版本:

mail.prod.py
mail.devel.py

只能根据环境类型(prod / devel)使用/导入一个。我可以提供某种抽象,让其他类知道是否要导入prod或devel吗?

1 个答案:

答案 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.variablemailcfg.DoSomething()

导入和访问您的模块

您的邮件模块中需要三个文件:

mail/
    __init__.py
    prod.py
    devel.py