Python:从导入了当前文件的文件调用函数

Python:从导入了当前文件的文件调用函数,python,function,import,call,main,Python,Function,Import,Call,Main,我试着四处搜索,但似乎没有找到我的问题的答案,所以如果我错过了一些东西,并且它实际上已经得到了回答,我很抱歉 所以基本上我有main.py和另一个名为check.py的文件(都在同一个目录中) 在main.py中,我有: from check import checkfunction 我在main.py中有一个小函数,我必须调用该函数,但我似乎无法在我的check.py上进行此导入: from main import mainfunction 如何使main函数在check.py内工作 谢谢

我试着四处搜索,但似乎没有找到我的问题的答案,所以如果我错过了一些东西,并且它实际上已经得到了回答,我很抱歉

所以基本上我有main.py和另一个名为check.py的文件(都在同一个目录中)

在main.py中,我有:

from check import checkfunction
我在main.py中有一个小函数,我必须调用该函数,但我似乎无法在我的check.py上进行此导入:

from main import mainfunction
如何使main函数在check.py内工作

谢谢

几个选项:

  • 将公共函数移动到由其他两个模块导入的模块
  • 将两个模块合并为一个模块
  • 将函数从main传递给需要调用它的代码
  • 导入函数后,将其修补到check模块中
  • 重构整个过程,这样就不会有循环依赖关系

如果你真的解释了为什么会有这种设计,有人可能会提出一种更好的方法。

你有一个循环依赖的设计,这通常是一件坏事,因为你的两个python模块是紧密耦合的


考虑重构代码。但是,如果您必须坚持您的设计,请参阅以下内容,以了解循环导入在Python中如何工作以及需要注意的各种问题的更多信息。

“无法让它工作”是指什么?确切的错误或问题是什么?当我运行main.py时,出现错误“ImportError:无法导入名称检查函数”。仅当我彼此都导入时发生。导入整个模块并分别使用
main.mainformation
check.checkfunction
调用函数。在main.py内部,我将导入更改为“导入检查”,在check.py内部,我将其分别更改为“导入主要”。现在,当我尝试在main.py中使用“check.checkfunction”时,我得到以下错误:ImportError:无法导入名称checkfunction