是否有任何现成的Python模块,它提供了一个易于使用的代理对象,只能初始化" real"真正需要时的对象?
理想情况下,我正在寻找透明的实现,以便处理此代理对象的代码不需要知道它不是实际的对象。
我想这样用:
class Example:
def __init__(self):
print("Example initialized")
lazy = Proxy(Example)
print(isinstance(lazy, Example))
# Example initialized
# True
正如你所看到的,它的行为非常像unittest.MagicMock。
如果没有任何提供此类功能的库我会自己实现,但我想确定没有其他人这样做过。
修改
我希望此代理对象遵循实施like this。
答案 0 :(得分:1)
我发现模块lazy-object-proxy正是这样做的。
值得一提的是@Marat指出Django offers a solution as well,虽然我不想为此导入Django,如果你已经在项目中使用它,那将是一个非常好的解决方案。