我有这个文件结构:
mainfolder
package/
__init__.py
packagefile.py
__init__.py
:
import packagefile as othername
如果我import package
来自主文件夹,package
也会有packagefile
和othername
。怎么了 ?是进口两次吗?我有python 2.7.3。这是预期的行为吗?当我执行import sys as something_else
时,sys将不会出现在当前名称空间中。
答案 0 :(得分:2)
是的,这是预期的行为。基本上,包中始终定义了模块。您正在做的是将其中一个模块作为另一个名称导入。这并不妨碍它已经被定义为它的原始名称。
我不相信这有任何不利的负面后果。例如,如果您要进入交互式终端,您应该看到:
>>> package.packagefile is package.othername
True
这表明它们是对同一对象的引用 - 例如,比较C ++中的两个指针。
但是,如果您只是尝试重命名模块成员,我建议您改为重命名该文件。