0

我需要从导入模块中的函数调用主应用程序函数。

因为,imported 有它自己的命名空间,所以它会打印一个名称错误:“global name...blah, blah..is not defined。”

主.py:

from imported import importedFunction

def mainFunction():
    print "MainFunction"

importedFunction()

导入的.py:

def importedFunction():
    print "importedFunction"
    mainFunction()

我需要 importlib 方法吗?请帮我修复。

4

2 回答 2

2

我想你不明白命名空间到底是什么。

例如,要在导入的模块上使用命名空间,您可以这样做:

from imported import importedFunction as func

然后在其余代码中,您可以简单地引用导入的函数func

此外,在您的代码中,您试图mainFunction从一个不包含mainFunction在您的模块中的模块调用,您正在导入的事实importedFunction不允许它访问您的模块中的函数,因为它仍在其自己的模块中起作用.

除非你导入mainFunction到导入的模块中,否则你会创建一个无限循环......这通常是不受欢迎的。

所以回答你“我需要从导入模块中的函数调用主应用程序函数”。除非您将模块导入到导入的模块中,否则这是不可能的...

于 2013-06-10T08:10:06.630 回答
1

您可以在那里导入函数,但这不一定是最好的解决方案:

导入的.py:

def importedFunction():
    print "importedFunction"

    from main import mainFunction
    mainFunction()

您应该在您的函数中导入 from main,因为除非它,否则您的导入中会有一个循环。

于 2013-06-10T08:12:16.310 回答