带别名的Python导入模块

时间:2015-05-16 11:54:12

标签: python

我是Python 3的新手,目前正在学习如何创建Python模块。我创建了以下包结构。

maindir
    test.py
    package
        __init__.py
        subpackage
            __init__.py
            module.py

这是我的module.py文件

name="John"
age=21

这是我的test.py文件

import package.subpackage.module
print(module.name)

当我运行test.py时出现此错误NameError: name 'module' is not defined 但是,当我将import语句更改为import package.subpackage.module as mymod并使用print(mymod.name)打印名称时,它将按预期工作。它的印刷名称约翰。 我不明白为什么它使用第二种情况而不是第一种情况。

2 个答案:

答案 0 :(得分:2)

也许你在尝试的是这个:

from package.subpackage import module

然后您可以在之后引用module作为名称。

如果你这样做:

import package.subpackage.module

然后,您的模块将被称为package.subpackage.module

答案 1 :(得分:0)

通过一点点阅读,我现在理解了这种行为。如果我错了,请纠正我。

使用此import package.subpackage.module样式的import语句,您必须使用其完全限定名称访问对象。例如,在这种情况下 print(package.subpackage.module.name)

使用别名我可以使用import package.subpackage.module as mymod缩短长名称并直接使用print(mymod.name)打印

简而言之print(package.subpackage.module.name) == print(mymod.name)