NOSSO MENU

sexta-feira, 2 de junho de 2023

estrutura de árvore para representar um menu

 # -*- coding: utf-8 -*-

"""

Created on Fri Jun  2 23:11:01 2023


@author: dan-s

"""

"""Em Python, você pode implementar uma estrutura de árvore para representar um menu usando classes e objetos. Aqui está um exemplo de como você pode fazer isso:"""

class MenuItem:

    def __init__(self, label, action=None):

        self.label = label

        self.action = action

        self.children = []


    def add_child(self, child):

        self.children.append(child)


    def execute_action(self):

        if self.action:

            self.action()

        else:

            print("No action defined for this menu item.")


    def __str__(self):

        return self.label



class Menu:

    def __init__(self, root):

        self.root = root


    def display(self):

        self._display_menu(self.root)


    def _display_menu(self, menu_item, indent=""):

        print(indent + str(menu_item))

        for child in menu_item.children:

            self._display_menu(child, indent + "  ")


        if not indent:

            choice = input("Enter your choice: ")

            for child in menu_item.children:

                if str(child) == choice:

                    child.execute_action()

                    break



# Exemplo de uso


# Funções de ação

def action1():

    print("Executing action 1...")


def action2():

    print("Executing action 2...")


def action3():

    print("Executing action 3...")


# Criando os itens de menu

item1 = MenuItem("Item 1", action1)

item2 = MenuItem("Item 2", action2)

item3 = MenuItem("Item 3")

item4 = MenuItem("Item 4", action3)

item5 = MenuItem("Item 5")


# Construindo a estrutura do menu

item3.add_child(item4)

item3.add_child(item5)

item1.add_child(item2)

item1.add_child(item3)


# Criando o menu e exibindo-o

menu = Menu(item1)

menu.display()

menu2 = Menu(item3)

menu2.display()


Nenhum comentário:

Postar um comentário

Redes Sociais

anuncios