目前,我有一个包含多个协同工作的类的解析器。
例如: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/