python导入变量

时间:2012-10-06 18:52:08

标签: python variables import

有2个文件:

首先调用:main.py

import side

var = 1

side.todo()

第二个叫做:side.py

import main


def todo():
    print "printing variable from MAIN: %s" %(main.var)

当我运行main.py时出错:

AttributeError: 'module' object has no attribute 'todo'

在python中你不允许以这种方式借用和使用变量吗?

我试图搜索与此相关的文档,但找不到与此问题相关的任何内容。

当然,有另一种方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:2)

问题是“你不能进行循环导入”,而在定义之前不能使用名称。将调用移至side.todo()某处,只要脚本运行就不会发生,或将main.var移动到第三个模块中。

答案 1 :(得分:0)

一个快速而丑陋的解决方案是将import语句移动到在side.py中需要它之前不会执行的地方

def todo():
    import main
    print "printing variable from MAIN: %s" %(main.var)

我会建议反对它。这个例子是人为的,但我相信你能找到一个更好的解决你的具体案例的方法。