首页 > 解决方案 > 如何实现模块委托器?

问题描述

我写了一个框架,想支持两个不同的后端。后端是共享相同结构的子模块和接口的模块。

framework:
  __init__.py 
  main.py 
  backend
    __init__.py 
    A
      __init__.py 
        submodule1
          __init__.py 
          func1.py
        func2.py 
    B
      __init__.py
      .... 
    

我想要的是使后端成为由环境变量控制的 A 或 B 的委托。

我尝试在 framework.backend 中编写。初始化.py:

if condition: 
   from .A import * 

并使用模块 A 像:

from framework.backend as backend 

这样,我可以使用 A 的根模块中的变量,但是,我无法访问子模块,例如

backend.submodule1.func1.XXX

我也不能这样做:

from backend.submodule1.func1 import XXX

如何像使用直接子模块一样实现对模块的委托?

标签: pythonpython-import

解决方案


推荐阅读