python - 在模块中导入类

标签 python namespaces module

目前,我有一个包含多个协同工作的类的解析器。

例如:TreeParser 创建多个 Product 和 Reactant 模块,这些模块又创建多个 Element 类。 TreeParser 由同一模块中的渲染方法调用,该模块是从导入器调用的。

最后,如果包有依赖项(例如 re 和同一文件夹中的另一个模块),需要这些模块的最佳位置在哪里?在 __init__.py 文件中还是在模块本身中?

编辑:

当导入模块的一部分调用模块内的另一个 def 时,如果未导入该 def,如何调用它?

lib/toolset.py => def add(){ toolset.show("我正在添加"); } def show(text){打印文本};

如果从 main.py => import lib.toolset 调用该文件,则不会加载 show 方法,或者 main.py => from lib.toolset import显示 将不起作用。

能否将导入工具集放在toolset.py的顶部?

最佳答案

我认为这是您问题中的关键陈述。

I don't really want to add the module name in front of every call to the class

我的回应:我听到你在说什么,但这是 Python 中的标准做法。

任何阅读“result = match(blah)”这样的代码的 Python 程序员都会假定您正在调用自己模块中的本地函数。如果您实际上是在谈论 re 模块中的函数 match(),他们会期望看到“result = re.match(blah)”。就是这样。

如果有帮助的话,当我第一次接触 Python 时,我也不喜欢这种风格,但现在我很欣赏它消除了我正在调用的许多称为“匹配”的函数中的任何一个的歧义,尤其是当我来的时候返回阅读我六个月前编写的代码。

关于python - 在模块中导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2699987/

相关文章:

Python网页抓取无法找到网页中的所有标签

python - 为什么 Python 将元组、列表、集合和字典视为根本不同的东西?

javascript 子命名空间未初始化

php - 哪个是命名空间和类的最佳方式

使用大型查找表的 Python 类

python - 安装模块时无模块错误

Python "with"Lambda 函数中的关键字

python os.path.dir 示例

c++ - 使用命名空间标准

java - 模块化 Java 接口(interface)的正确用法是什么?