Python 自动更改其值 - Tkinter

Python automatically changing its value - Tkinter

假设我有 3 个文件 -

  1. main.py
  2. CommunicationsHandler.py
  3. main_canvas.py

main.py

的内容
# Showing only main part
from CommunicationsHandler import CommunicationsHandler

def replace_window(event):
    root.geometry('+0+0')

l.bind('<ButtonRelease-1>', replace_window)
CommunicationsHandler.root = root

import main_canvas
from main_canvas import *

# root = CommunicationsHandler.root

main_canvas.py

的内容
# Showing only main part
from CommunicationsHandler import CommunicationsHandler

# I had to keep this name to root as I created main.py later
root = tk.Toplevel(CommunicationsHandler.root)
CommunicationsHandler.child = root

CommunicationsHandler

的内容
# Showing only main part
class CommunicationsHandler:
    root = None
    child = None

现在,当 <ButtonRelease-1> 绑定在 main.py 中触发时,它不会改变 main.py 的 GUI 几何结构,而是改变 main_canvas.py 的 GUI 怎么样这可能吗?我通过取消注释 main.py 的最后一行解决了这个问题,但它仍然是自动更改它的根还是什么?

是因为执行了下面一行后:

from main_canvas import *

main.py 内的 root 将被 main_canvas 模块内的 root 覆盖。

如果您从 main.py 中删除该行,您将看到差异。

不推荐from xxx import *的原因之一