python - Tkinter,RecursionError:调用 Python 对象时超出最大递归深度
问题描述
我正在构建一个 tkinter-window-maker,但在父类中的“new_window”方法时遇到了问题。我可以稍微修改它并将其复制粘贴到每个子类中它可以正常工作但它似乎效率低下,如果我将方法放在父类中但是(下面的代码)它会达到最大递归深度。怎么了?
代码:
from tkinter import *
import sys
class Window():
def __init__(self, master, x, y, title):
self.master = master
master.title(title)
master.geometry("{}x{}".format(x,y))
def new_window(self, class_name):
self.master.destroy()
class_name = getattr(sys.modules[__name__], str(class_name))
root=Tk()
class_name(root)
root.mainloop()
class Login(Window):
def __init__(self, master):
super().__init__(master, 200, 200, "Login")
Button(master, text="NEXT",width=7,height=1,command=self.new_window("Home")).grid(row=1,column=1)
class Home(Window):
def __init__(self, master):
super().__init__(master, 200, 200, "Home")
Button(master, text="NEXT",width=7,height=1,command=self.new_window("Login")).grid(row=1,column=1)
def main():
root=Tk()
Login(root)
root.mainloop()
if __name__ == '__main__':
main()
解决方案
推荐阅读
- linux - 父进程已经死亡的进程是否正常继续执行?
- android - 如何在 Android 12 上更改通知的背景颜色
- pyspark - 使用时间戳 pyspark 更新 json 列
- scala - 如何返回成功解析并转换为我的案例类的行
- html - VBA Selenium - 从 aria-label 中提取信息
- php - Μysql - 在 php 中获取后如何从数组中获取第一个值
- postgresql - 如何从 PostgreSQL 查询正确构建 KnexJS 查询
- sql - 如果在 SQlite 中删除触发器后结果为空,如何将值更新为 0?
- r - 向直方图添加正态分布曲线
- python - 试图创建一个骰子模拟游戏,有两个掷骰和一个返回值