目前,我有一个多个类一起工作的解析器。
For Instance:TreeParser创建多个Product和Reactant模块,这些模块又创建多个Element类。 TreeParser由同一模块中的render方法调用,该方法从导入器调用。
最后,如果包具有依赖关系(例如re和同一文件夹中的另一个模块),那么需要这些模块的最佳位置在哪里?在__init__.py
文件内或模块本身内?
编辑:
导入模块中调用另一个def的模块的一部分时,如果未导入def,如何调用该def?
lib/toolset.py => def add(){ toolset.show("I'm Add"); } def show(text){print text};
如果从main.py => import lib.toolset
调用该文件,则不会加载show方法,或main.py => from lib.toolset import show
无效。
import toolset
可以放在toolset.py
的顶部吗?
答案 0 :(得分:3)
我认为这是你问题中的关键陈述。
我真的不想在每次调用类
之前添加模块名称
我的回答:我听到你在说什么,但这是Python的标准做法。
任何Python程序员阅读代码如“result = match(blah)”都会假设您在自己的模块中调用本地函数。如果你实际上在讨论re模块中的函数match(),他们会期望看到“result = re.match(blah)”。就是这样。
如果它有所帮助,我不喜欢这种风格,当我第一次来到Python时,但现在我很欣赏它消除了我所称的“匹配”的许多功能中的哪一个的模糊性,特别是当我来的时候回到我六个月前写的代码。
答案 1 :(得分:2)
我不确定你的问题是什么,你只是想减少打字吗?
import longmodulename as ln
使用ln.something
代替longmodulename.something
from longmodulename import ( something, otherthing )
直接使用something
import *
永远不是一个好主意,它与编码工具混淆,默默地打破,让读者想知道的东西被定义等等......