我正在尝试构建一个系统来处理不显式存在的模块的延迟加载。基本上,我有一个http服务器,它有许多我事先不知道的端点,我想通过编程方式提供给导入。这些模块都有一个统一的方法签名,它们只是不可能提前存在。在
import lazy.route as test
import lazy.fake as test2
test('Does this exist?') # This sends a post request.
test2("This doesn't exist.") # Also sends a post request
我可以用一个统一的decorator处理这些导入所需的所有逻辑,只是找不到任何方法用python“装饰”导入,或者以任何编程方式与它们交互。在
有人有这方面的经验吗?我一直在四处寻找,找到的最接近的是ast
模块,在我目前的理解下,这将导致我当前的实现非常糟糕(比如查找所有的import语句并手动重写import函数)
不需要讲义,只需要开始查看python代码库的一部分,或者某人做过类似事情的例子。在
我在谷歌上有点聪明,找到了一个专门解决这个问题的政治公众人物,它碰巧是相对未知的,可能是因为它的合理用途的子集相当狭窄。在
我发现了一段优秀的示例代码,展示了新的
sys.meta_path
实现。我把它贴在下面,了解如何动态引导导入语句。在完整的博文是here
相关问题 更多 >
编程相关推荐