首页 > 解决方案 > 创建按钮类时出现递归错误

问题描述

我正在为 python 项目创建一个按钮类,在运行时,我收到以下错误:

my_Button = Button(master)
[Previous line repeated 496 more times]
RecursionError: maximum recursion depth exceeded

Process finished with exit code 1

这是我创建的类:

from tkinter import *
import random


class Window:

    def __init__(self, master):
        master.title('Black Jack')
        master.configure(bg='green')
        master.geometry('500x500')


class Button:

    def __init__(self, master, text, font, x, y):
        master = master
        self.text = text
        self.font = font
        self.x = x
        self.y = y
        my_Button = Button(master, text=text, font=font)
        my_Button.pack(x=x, y=y)

这是代码:

from tkinter import *
import Classes

Helvetica = font = ('Helvetica', 15, 'bold italic')
Times = font = ('times', 13, 'bold italic')

root = Tk()
window = Classes.Window(root)
playButton = Classes.Button(root, 'Play', font, 200, 200)

为什么会出现递归错误?我没有使用任何循环。

标签: pythonclassbutton

解决方案


从您的代码中,您需要检查以下将递归调用该__init__方法的代码。

my_Button = Button(master, text=text, font=font)

当您调用 Button() 方法时,您init每次都在调用该方法。因此,这将陷入循环。由于正在进行的递归,我所理解的以下代码行将永远不会执行。

my_Button.pack(x=x, y=y)


推荐阅读