0

我有这个文件结构:

mainfolder
    package/
        __init__.py
        packagefile.py

__init__.py

import packagefile as othername

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

4

1 回答 1

2

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

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

>>> package.packagefile is package.othername
True

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

但是,如果您只是想重命名模块成员,我建议您直接重命名文件。

于 2013-04-02T18:23:58.120 回答