![](/img/trans.png)
[英]Is this a python antipattern? 'import foo.foo as foo' shadows the rest of the foo package
[英]Does import __foo__ import from the __init__ file of the foo package?
我一直在阅读一些使用以下导入语句的代码:
import __ompc__
当我尝试grep查找正在导入的内容时,我发现的是:
me@Bedrock1:~/Projects/PythonProjects/ompc$ grep -r "__ompc__" ./*
./build/lib.linux-x86_64-2.7/ompclib/m_compile.py:import __ompc__
./build/lib.linux-x86_64-2.7/ompclib/m_compile.py: codeobject = __ompc__.compile(codestring, dfile or file,'exec')
./build/bdist.linux-x86_64/egg/ompclib/m_compile.py:import __ompc__
./build/bdist.linux-x86_64/egg/ompclib/m_compile.py: codeobject = __ompc__.compile(codestring, dfile or file,'exec')
Binary file ./build/bdist.linux-x86_64/egg/ompclib/m_compile.pyc matches
./ompclib/m_compile.py:import __ompc__
./ompclib/m_compile.py: codeobject = __ompc__.compile(codestring, dfile or file,'exec')
由于使用__ompc__
来查找名为“ compile
”的方法,因此我对此进行了递归grep。 我发现在./ompc/ompc
目录中的__init__.py
文件有一个编译方法。
这是什么
import __ompc__
可以访问? 还是这里发生了我不理解的事情?
我实际上无法使ompclib/m_compile.py
工作 。 ompc/m_compile.py
几乎是同一文件,但ompc
代码库实际上使用了ompc
。
我的结论是,该文件以及整个ompclib
目录可能是早期开发阶段的遗留物,而作者只是忘了清理它。
import __ompc__
导入只不过是一个损坏的导入。 它不会神奇地转变为导入ompc
包。 ompc/m_compile.py
确实可以使用,而是使用import ompc
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.