子模块__init__.py未传递给脚本

时间:2018-01-31 14:16:56

标签: python python-module

我有一个如下所示的文件夹结构:

\test
    main.py
    \module
        __init__.py
        foo.py

main.py包含:

from module.foo import bar
bar()

__init__.py包含:

HELLO = "hello"

foo.py包含:

def bar():
    print(HELLO)

当我在命令行python main.py中运行时,我收到错误:

NameError: name 'HELLO' is not defined

我不明白为什么__init__.py没有将HELLO变量传递给foo.py

2 个答案:

答案 0 :(得分:1)

在foo.py中,添加

from . import HELLO

因此导入变量HELLO

变量HELLO的完全限定名称为module.HELLO。这意味着HELLO在包module中定义。

答案 1 :(得分:1)

要定义此常量,您需要导入模块。

例如:

foo.py中,你必须:

from module import HELLO

def bar():
    print(HELLO)