Tkinter - RuntimeError: превышена максимальная глубина рекурсии

Я начал программировать на Python в понедельник. Я с удовольствием изучал это. Но я застрял, пытаясь понять, как избежать рекурсии при переключении между меню tkinter! Я уверен, что это очень простой вопрос, и я ценю, что вы терпите мое невежество по этому вопросу, но я не смог найти ответ в другом месте.

Что я сейчас делаю, так это, в конце концов, выдает мне ошибку: RuntimeError: максимальная глубина рекурсии превышена при вызове объекта Python

Это шаблон, который я сейчас использую. ОБНОВЛЕНО: приведенный ниже код теперь является полной изолированной копией, воспроизводящей проблему, с которой я столкнулся! : D

<code>from tkinter import *

def mainmenu():
    global frame, root

    frame.destroy()

    frame = Frame()
    frame.pack()

    button1 = Button(frame, text="anothermenulikethis", command = anothermenulikethis)
    button2 = Button(frame, text="anothermenulikethis", command = anothermenulikethis)
    button3 = Button(frame, text="mainmenu", command = mainmenu)

    button1.pack(side=LEFT)
    button2.pack(side=LEFT)
    button3.pack(side=LEFT)

    root.mainloop()

def anothermenulikethis():
    global frame, root

    frame.destroy()

    frame = Frame()
    frame.pack()

    button1 = Button(frame, text="mainmenu", command = mainmenu)
    button2 = Button(frame, text="mainmenu", command = mainmenu)
    button3 = Button(frame, text="anothermenulikethis", command = anothermenulikethis)

    button1.pack(side=LEFT)
    button2.pack(side=LEFT)
    button3.pack(side=LEFT)

    root.mainloop()

root = Tk()
root.title("Recursive Menu Problem Isolation")
root.geometry("1200x600")
frame = Frame()

mainmenu()
</code>

И все это прекрасно работает, пока его неизбежный отказ от максимальной глубины рекурсии. Если кто-то может предложить лучший способ сделать что-то или у него есть ссылка на пример лучшего способа сделать это, я очень хочу учиться.

PS: я смотрел и пытался увеличить глубину рекурсии, но я чувствую, что это решение бедного человека, что является фундаментальной проблемой моего подхода.

Спасибо всем заранее.

Как и просили, вот трассировка:

<code>Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/tkinter/__init__.py", line 1399, in __call__
    return self.func(*args)
  File "/Users/diligentstudent/Desktop/menutest.py", line 11, in mainmenu
    button1 = Button(frame, text="anothermenulikethis", command = anothermenulikethis)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/tkinter/__init__.py", line 2028, in __init__
    Widget.__init__(self, master, 'button', cnf, kw)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/tkinter/__init__.py", line 1958, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/tkinter/__init__.py", line 1043, in _options
    v = self._register(v)
  File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/tkinter/__init__.py", line 1079, in _register
    f = CallWrapper(func, subst, self).__call__
RuntimeError: maximum recursion depth exceeded
</code>

Ответы на вопрос(1)

Ваш ответ на вопрос