Python中的模块化编译器

2024-04-26 07:36:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个编译器,使用PLY(Python-Lex-Yacc)库来“编译”编译器。编译器必须通过许多规则 核心规则的数量最终将略少于100条,并且可以扩展)。因此,为了将不同类型的规则分开,我在一个modules目录中创建了许多Python模块。你知道吗

要包含所有规则,我不必包含此目录中的模块,但必须将规则(实现为Python函数)包含到当前名称空间中。一旦它们仅仅存在于那里,编译器的输入将被正确地标记、解析等

以下是我读到并尝试过的内容:

  • 使用__import__getattrsys.modules(非常原始,通常不首选)
  • importlib库(如何获取模块中的所有内容?)你知道吗
  • 大量地摆弄__init__.py并尝试from modules import *,这也将导入模块中的所有内容

但这些似乎都不完全令我满意。我对他们中的任何一个都做不到我想做的。所以我的问题是:如何将子目录中Python模块的一些属性导入顶级模块的运行命名空间?你知道吗

感谢您的关注!你知道吗


Tags: 模块函数import目录名称modules类型内容
1条回答
网友
1楼 · 发布于 2024-04-26 07:36:44

您想使用一个现有的插件库,比如stevedore。它将为您提供枚举可以导入的文件的工具,以及导入这些模块的工具。你知道吗

相关问题 更多 >