从导入的模块访问“主”模块功能和变量

时间:2013-09-19 08:25:05

标签: python

main.py

import try_modules
cats = 2
try_modules.printCats()

try_modules.py

def printCats():
    global cats
    print cats

这会引发错误。从主模块到导入模块使用“伪全局”变量的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

如果你有这个要求,这通常是一个糟糕的设计,但你可以这样做:

 import try_modules
 try_modules.cats = 2
 try_modules.printCats()

如果你有几个模块需要一个变量把它放在一个包含变量的模块中(我不认为应该使用它,你应该更改一个对象来保存变量):

module_a.py

import global_vars

global_vars.a = 23

module_b.py

import global_vars

print global_vars.a

global_vars.py

a = 37

main.py

import module_a
import module_b

将打印23,变量a将在所有模块中共享。

答案 1 :(得分:0)

你的main.py不知道变量cat属于哪个模块。使用

try_modules.cats = 2

或修改您的导入以阅读

from try_modules import cats