Python3 - 如何在模块执行之前添加属性?

时间:2016-05-05 23:32:10

标签: python-3.x python-importlib

应用程序:想象财务分析师,快速编写Python代码片段,并能够使用方便的财务函数和共享变量,而无需进行任何导入,定义函数或执行任何操作。只是他们想要编写的代码的平面源文件,没有别的。

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

Python 3.x和PEP 402介绍了模块规范,以及create_moduleexec_module函数。创建模块,添加属性,然后执行。完善。允许create_module除外None。浏览3.5 importlib.abc.util.machinery代码,create_module的所有实现都会返回None

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

谢谢!

0 个答案:

没有答案