python“import package as”奇怪的行为

时间:2013-04-02 18:12:01

标签: python python-2.7

我有这个文件结构:

mainfolder
    package/
        __init__.py
        packagefile.py

__init__.py

import packagefile as othername

如果我import package来自主文件夹,package也会有packagefileothername。怎么了 ?是进口两次吗?我有python 2.7.3。这是预期的行为吗?当我执行import sys as something_else时,sys将不会出现在当前名称空间中。

1 个答案:

答案 0 :(得分:2)

是的,这是预期的行为。基本上,包中始终定义了模块。您正在做的是将其中一个模块作为另一个名称导入。这并不妨碍它已经被定义为它的原始名称。

我不相信这有任何不利的负面后果。例如,如果您要进入交互式终端,您应该看到:

>>> package.packagefile is package.othername
True

这表明它们是对同一对象的引用 - 例如,比较C ++中的两个指针。

但是,如果您只是尝试重命名模块成员,我建议您改为重命名该文件。