python - 用于延迟初始化的代理对象

标签 python lazy-initialization proxy-classes

是否有任何现成的 Python 模块可以提供易于使用的代理对象,仅在真正需要时初始化“真实”对象?

理想情况下,我正在寻找一种透明的实现,以便处理此代理对象的代码不需要知道它不是实际的对象。

我想这样使用它:

class Example:
    def __init__(self):
        print("Example initialized")

lazy = Proxy(Example)
print(isinstance(lazy, Example))
# Example initialized
# True

如您所见,它的行为非常类似于unittest.MagicMock。

如果没有任何库提供这样的功能,我将自己实现它,但我想确保还没有其他人这样做过。

编辑

我希望这个代理对象遵循完整的实现 like this .

最佳答案

我找到了模块lazy-object-proxy这正是这样做的。

值得一提的是,正如 @Marat 指出的 Django offers a solution as well ,虽然我不想为此导入 Django,但如果您已经在项目中使用它,那么这将是一个完美的解决方案。

关于python - 用于延迟初始化的代理对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634064/

相关文章:

python - Django 计数过滤器注释不起作用

python - 在python paramiko ssh上发送回车键

python - 如何按列添加矩阵和向量?

Python 的plotly Logo 从图表中消失

python - 为什么 Django 会为代理模型创建迁移文件?

Spring @Async 生成 LazyInitializationExceptions

c# - .Net 单例属性的延迟初始化

java - org.hibernate.LazyInitializationException : could not initialize proxy - no Session when trying to initialize

Java 7 - 自定义方法修饰,无需默认委托(delegate)所有其他许多方法

java - 指定正确的 spring-instrument agent jar 的最佳实践