如何访问__init__.py中定义的(全局)变量?

时间:2017-07-27 10:50:52

标签: python

以下是代码结构:

 my_project
├── __init__.py
├── main.py
└── util
    ├── __init__.py
    └── utility.py

当我通过python3 my_project/main.py运行程序时。

我在my_variable = 5中定义了my_project/__init__.py

我想在my_variablemain.py访问此utility.py

但不知道怎么做......

我关注Can I use __init__.py to define global variables?,但它对我不起作用(无法导入项目目录文件夹......出现错误:ImportError: No module named 'MY_PROJECT_DIR' ..

你能解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

为此你应该使用相对导入。 python还以不同的方式处理脚本和模块

my_project/__init__.py

的内容
  

my_variable = 5

my_project/util/utility.py

的内容
  

from .. import my_variable
  打印(" my_variable",my_variable)

my_project/main.py

的内容
  来自。 import my_variable
  打印(" my_variable",my_variable)

将其作为模块运行

$ python3 -m my_project.util.utility
my_variable 5
$ 
$ python3 -m  my_project.main
my_variable 5