我想引用文件命名空间中的一个对象来导入我正在编写的文件。
这是一个例子:
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
怎么做? 感谢。
答案 0 :(得分:1)
依赖于模块之间的全局变量并不是一个好主意。您应该将obj
作为参数传递给函数f()
,如下所示:
f(obj)
然后在函数中声明参数:
def f(obj):
# code to operate on obj
return obj