Python-定义类的多个版本

Python-定义类的多个版本,python,django,Python,Django,我想定义同一类的两个不同版本: mail.prod.py mail.devel.py 根据环境类型(prod/devel),只能使用/导入一个。我是否可以提供某种抽象,使其他类不必知道是导入prod还是devel?您可以使用环境变量来实现这一点。您可以在Windows中通过this和Linux通过类似于 EXPORT app_env="PROD" 现在,假设您已经在环境中设置了一个名为app\u env的变量,您可以在邮件模块的\uuuu init\uuuuu.py中执行此操作: impor

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

mail.prod.py
mail.devel.py

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

您可以使用环境变量来实现这一点。您可以在Windows中通过this和Linux通过类似于

EXPORT app_env="PROD"
现在,假设您已经在环境中设置了一个名为
app\u env
的变量,您可以在邮件模块的
\uuuu init\uuuuu.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

您可以制作一个
mail
模块,其中
mail/\uuuu init\uuuuuuuuuupy
mail.production
mail.development
导入,具体取决于环境变量。你为什么不能把它们合并成一个类呢?