我正在构建一个用工厂初始化/注入的上下文管理器,它创建资源实例,然后由上下文管理器管理
我有两个不同的工厂: 工厂 异步工厂
其中创建资源的标准版本。另一个创建资源的异步版本
目前我有两个上下文管理器:ContextManager和AsyncContextManager。在查看我的代码时,我意识到上下文管理器init和助手函数在两种实现中都是相同的
一个选项是创建BaseContextManager,然后继承此通用功能
另一种方法是合并到一个上下文管理器中,该管理器具有enter、exit和aenter、aexit方法实现。即
class ContextManager
def __init__(self, a, b, c)
...
def __enter__(self):
...
def __exit__(self):
...
def __aenter__(self):
...
def __aexit__(self):
...
def helper()
...
然后取决于调用“with”还是“async with”,它是否以异步方式工作
想知道人们对这种上下文管理器有什么想法。我最初的感觉是,我把他们当作两个经理,这样可以避免在一个班上做太多事情,但我对其他观点感兴趣
目前没有回答
相关问题 更多 >
编程相关推荐