我是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)
打印名称时,它将按预期工作。它的印刷名称约翰。
我不明白为什么它使用第二种情况而不是第一种情况。
答案 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)