基本上,我有3个模块,它们彼此通信并导入彼此的功能。我正在尝试从shigui.py模块导入一个为程序创建GUI的函数。现在,我有一个函数可获取gui中用户条目的值,并将其传递给其他模块。我正在尝试传递以下功能:
def valueget():
keywords = kw.get()
delay = dlay.get()
category = catg.get()
直到我尝试使用
导入此功能之前,所有导入都可以正常进行
from shigui import valueget
到另一个将使用这些值的模块。实际上,我无法从此文件将任何功能导入任何模块。另外,我还应该添加它们在同一目录中。我对此事有任何帮助。
答案 0 :(得分:0)
嗯,我不能完全确定进口什么,但这是我能告诉你的。 Python 可以有时允许循环依赖。但是,这取决于依赖项的布局。首先,我要说的是看看是否有任何方法可以避免这种情况发生(重组代码等)。如果不可避免,那么您可以尝试一件事。当Python导入模块时,它按代码执行的顺序进行。这意味着,如果在导入之前具有定义,则有时可以通过将第二个模块中的第一个模块导入来访问第一个模块中的定义。让我举个例子吧。考虑您有两个模块,A和B。
A:
def someFunc():
# use B's functionality from before B's import of A
pass
import B
B:
def otherFunc():
# use A's functionality from before A's import of B
pass
import A
在这种情况下,Python将允许这样做。但是,导入后的所有内容并不总是公平的游戏,因此请小心。如果您想知道为什么它可以工作,可以进一步阅读Python的模块系统。