使用其他文件中定义的对象而不导入

时间:2015-05-22 21:31:51

标签: python

我想引用文件命名空间中的一个对象来导入我正在编写的文件。

这是一个例子:

main.py

from imp import *   # main is importing the file I'm writing
...more code...
obj=1               # main defines obj
f()                 # f(), defined in imp, needs to use obj

...more code using obj...

这是定义f()的文件:

imp.py

def f():
 return obj    # I want to refer to main's obj here

运行时错误:

error: global name 'obj' is not defined

怎么做? 感谢。

1 个答案:

答案 0 :(得分:1)

依赖于模块之间的全局变量并不是一个好主意。您应该将obj作为参数传递给函数f(),如下所示:

f(obj)

然后在函数中声明参数:

def f(obj):
    # code to operate on obj
    return obj