我正在用Python编写一个编译器,使用PLY(Python-Lex-Yacc)库来“编译”编译器。编译器必须通过许多规则
核心规则的数量最终将略少于100条,并且可以扩展)。因此,为了将不同类型的规则分开,我在一个modules
目录中创建了许多Python模块。你知道吗
要包含所有规则,我不必包含此目录中的模块,但必须将规则(实现为Python函数)包含到当前名称空间中。一旦它们仅仅存在于那里,编译器的输入将被正确地标记、解析等
以下是我读到并尝试过的内容:
__import__
、getattr
和sys.modules
(非常原始,通常不首选)importlib
库(如何获取模块中的所有内容?)你知道吗__init__.py
并尝试from modules import *
,这也将导入模块中的所有内容但这些似乎都不完全令我满意。我对他们中的任何一个都做不到我想做的。所以我的问题是:如何将子目录中Python模块的一些属性导入顶级模块的运行命名空间?你知道吗
感谢您的关注!你知道吗
您想使用一个现有的插件库,比如stevedore。它将为您提供枚举可以导入的文件的工具,以及导入这些模块的工具。你知道吗
相关问题 更多 >
编程相关推荐