Как создавать фреймы в неопределённом кол-ве?

Для создания фреймов (или окон) в Python в неопределенном количестве можно использовать библиотеку tkinter, которая является стандартным инструментом для создания графического интерфейса в Python.

Для начала необходимо импортировать библиотеку tkinter:

import tkinter as tk

Затем создайте функцию, которая будет создавать новый фрейм (окно). В данной функции мы будем передавать в нее родительский контейнер, таким образом будет создаваться новое окно внутри другого окна. Можно также указать дополнительные параметры для окна (например, название):

def create_frame(parent, title):
    new_frame = tk.Frame(parent)
    new_frame.pack()
    new_frame.master.title(title)  # Устанавливаем название окна
    return new_frame

Теперь можно создавать новые окна, вызывая функцию create_frame и передавая в нее родительский контейнер и название нового окна:

root = tk.Tk()  # Создаем главное окно
root.title("Главное окно")

frame1 = create_frame(root, "Окно 1")
frame2 = create_frame(root, "Окно 2")
frame3 = create_frame(frame2, "Подокно 1")

root.mainloop()  # Запускаем главный цикл обработки событий

Таким образом, при каждом вызове функции create_frame будет создаваться новый фрейм в указанном родительском контейнере. При этом можно создавать окна в любом количестве, указывая соответствующие параметры для каждого нового окна. Само собой, можно дополнительно настраивать каждое окно, добавлять виджеты и задавать им поведение в соответствии с требованиями проекта.