0

我有以下结构 -

invoize/
    __init__.py
    globals.py
    view/
       __init__.py
       tags.py

globals.py 包含一个名为 app 的变量。

  1. 我想从 tags.py 访问该变量。
  2. 我想修改它,使其状态在全球范围内得到反映(不仅仅是本地参考)。

如何从 tags.py 访问变量app以实现上述目标?

谢谢,穆尔塔萨

4

2 回答 2

4

使用相对导入

from ..invoize import globals
print globals.app
globals.app = True

请注意,要使其正常工作:

  1. 你需要一个__init__.py在顶层,旁边viewinvoize

  2. 您需要tags从包外部导入(您将无法进入view文件夹并运行python tags.py.

于 2012-11-08T08:44:52.513 回答
1

您是否尝试过编辑 PYTHONPATH 环境变量以包含“/invoize/”目录?

我是这样回答你的问题的:

[gp@imdev1 /testdir/invoize/view] 导出 PYTHONPATH=$PYTHONPATH:/testdir/

[gp@imdev1 /testdir/invoize/view] echo $PYTHONPATH /opt/python3/lib/python3.3/selenium/webdriver/support/:/opt/python3/lib/python3.3/selenium/webdriver/ie/: /测试目录/

在 /testdir/invoize/globals.py 中:

app = 'murtaza52'

在 /testdir/invoize/view/tags.py 中:

导入 invoize.globals

打印 invoize.globals.app

invoize.globals.app += 'newvalue'

打印 invoize.globals.app

[gp@imdev1 /testdir/invoize/view]$ python tags.py

穆尔塔扎52

murtaza52 新值

于 2012-11-08T11:48:41.770 回答