我的要求是我有一个标准框架,可以通过 3 个步骤生成 HTML 到 PDF:
1)从我们的数据库中获取内容并从中创建含义,读取 XML 并覆盖或决定设置等 -预处理
2) 使用预处理数据创建 HTML 模板 - render_template
3)运行 aa HTML to PDF Converted 并取回 PDF。-调用服务
现在 , 有时 可能 需要 不同 的 PDF 引擎 并且 实现 可能 会 改变 ... 其中 甚至 有 可能 需要 非常 严格 的 数据 或 专有 设置
所以我可能需要扩展 1,覆盖 2,覆盖 3并且我想让这个实现可配置并轻松切换。
我正在考虑创建一个基类,然后创建实际上将成为运行时对象的 Foo.py 实现和 Bar.py 实现。我怎样才能用简单的 Python 得到这个?
我能想到的一个可怕的方法是:
#Module Name ServiceHandler
def implementation(imp_name):
try:
from imp_name import imp_class
return imp_class(AbtractClass)
else:
Sorry No Implemenation Found!
class AbstractClass(...)
def __init__
Gets invoked in another object method as
self.ServiceHandler.implementation(read_from_xml)
谁能给我很好的指导来解决这个问题?基本上我想要 Foo(Base) 或 Bar(Base) 这应该就像读取配置并将其映射到那个 .
我当前的模块布局是:
模块.py
- 基础.py
- foo.py
- 酒吧.py
- unknown.py 应该很容易扩展。