我需要从导入模块中的函数调用main app函数。
因为,导入它拥有自己的命名空间,它会输出一个名称错误:"全局名称......等等,等等......没有定义。"
main.py:
from imported import importedFunction
def mainFunction():
print "MainFunction"
importedFunction()
imported.py:
def importedFunction():
print "importedFunction"
mainFunction()
我需要importlib方法吗?请帮我解决。
答案 0 :(得分:2)
我认为你不明白命名空间是什么。
例如,要在导入的模块上使用命名空间,请执行以下操作:
from imported import importedFunction as func
然后在您的其余代码中,您可以将引用到导入的函数,只需func
。
此外,在您的代码中,您尝试从模块中不包含mainFunction
的模块调用mainFunction
,导入importedFunction
的事实确实如此不要让它访问模块中的函数,因为它仍然在自己的模块中运行。
除非您将mainFunction
导入到导入的模块中,否则您将创建一个无限循环....这通常是不受欢迎的。
所以回答你“我需要从导入模块中的函数调用main app函数”。除非您将模块导入导入的模块中,否则这是不可能的......
答案 1 :(得分:1)
您可以在那里导入该功能,但它不一定是最佳解决方案:
imported.py:
def importedFunction():
print "importedFunction"
from main import mainFunction
mainFunction()
你应该从你的函数中的main
导入,因为除非它你的导入中有一个循环。