0

应用:想象一下金融分析师,快速编写 Python 代码片段,并能够使用方便的金融函数和共享变量,而无需进行任何导入、定义函数或做任何事情。只是他们想要编写的代码的平面源文件,没有别的。

我几乎可以到达那里,通过动态加载源文件作为模块(简单),并将我的函数+变量作为属性添加到加载的模块(更容易)。问题是加载模块会导致模块执行,这为时过早。未定义函数等

Python 3.x 和 PEP 402 引入了模块规范create_moduleexec_module函数。创建模块,添加属性,然后执行。完美的。除了create_module被允许返回None。并浏览 3.5 importlib.abc.util、 和代码, return.machinery的所有实现。create_moduleNone

所以我想知道我是否必须编写自己的加载器,和/或导入器,和/或其他东西。顺便说一句,我喜欢添加到模块,而不是添加到builtins,但如果builtins有效并且是我唯一的选择,我会这样做。

谢谢!

4

0 回答 0