如何连接逻辑和GUI文件(Python3、Tkinter)

如何连接逻辑和GUI文件(Python3、Tkinter),python,python-3.x,tkinter,import,Python,Python 3.x,Tkinter,Import,我遇到了一个与Python中的导入相关的问题。我已经实现了一个简单的计算器,没有太多的代码,但我想把我的逻辑从GUI中分离出来(用Tkinter实现) 我的逻辑文件calc_logic.py: 我的GUI文件calculator.py: 我得到一个错误: Traceback (most recent call last): File "/Users/vladsokolovskii/Desktop/python/gui_project/calculator.py", line 4, in &l

我遇到了一个与Python中的导入相关的问题。我已经实现了一个简单的计算器,没有太多的代码,但我想把我的逻辑从GUI中分离出来(用Tkinter实现)

我的逻辑文件calc_logic.py:

我的GUI文件calculator.py:

我得到一个错误:

Traceback (most recent call last):
  File "/Users/vladsokolovskii/Desktop/python/gui_project/calculator.py", line 4, in <module>
    from calc_logic import *
  File "/Users/vladsokolovskii/Desktop/python/gui_project/calc_logic.py", line 2, in <module>
    from calculator import *
  File "/Users/vladsokolovskii/Desktop/python/gui_project/calculator.py", line 25, in <module>
    clear_button = Button(win, text = 'C', padx = 20, pady = 15, command = button_clear)
NameError: name 'button_clear' is not defined
calculatro.py中对按钮清除()的第一次引用

我试过:

clear_button = Button(win, text = 'C', padx = 20, pady = 15, command = lambda: button_clear())
它没有给我错误,也没有起作用-_-

我试图以不同的方式修改代码,但从未成功

你能给我解释一下问题出在哪里吗,我是Python新手,我在互联网上找不到类似的问题,我确信有一个解决方案,但我只是不知道如何正确地搜索它


谢谢

当在
calc_logic.py
中导入
calculator
时,尚未定义
按钮清除()。尝试重构代码,不要在
calc\u logic.py
中导入
calculator
。这是一个循环导入。请参阅以解决此问题当在
calc\u logic.py
中导入
计算器时,
按钮清除()
函数尚未定义。尝试重构代码,不要在
calc\u logic.py
中导入
calculator
。这是一个循环导入。看看能不能解决这个问题
Traceback (most recent call last):
  File "/Users/vladsokolovskii/Desktop/python/gui_project/calculator.py", line 4, in <module>
    from calc_logic import *
  File "/Users/vladsokolovskii/Desktop/python/gui_project/calc_logic.py", line 2, in <module>
    from calculator import *
  File "/Users/vladsokolovskii/Desktop/python/gui_project/calculator.py", line 25, in <module>
    clear_button = Button(win, text = 'C', padx = 20, pady = 15, command = button_clear)
NameError: name 'button_clear' is not defined
...
def button_clear():
        display.delete(0, END)
        display.insert(0, '0')
...
...
clear_button = Button(win, text = 'C', padx = 20, pady = 15, command = button_clear)
...
clear_button = Button(win, text = 'C', padx = 20, pady = 15, command = lambda: button_clear())