O que poderia melhorar no código, para deixar mais legível e com uma estrutura profissional ?
class Restaurante:
def __init__(self, nome, categoria, ativo):
self.nome =nome
self.categoria = categoria
self.ativo = ativo
restaurantes = []
def menu():
print('Escoha uma das opções:')
print('1.Cadastrar um restaurante:')
print('2.Listar Restaurantes:')
print('3.Selecionar restautante:')
print('4.Alterar restaurante:')
print('5.Sair')
escolha = input('Digite uma das opções a cima.')
opcoes(escolha)
def opcoes(escolha):
if escolha == '1':
criando_objeto()
elif escolha == '2':
listando_objetos()
elif escolha == '3':
seleciona_restaurante_individual()
elif escolha == '4':
altera_atributos()
elif escolha == '5':
print('Encerrando o programa')
else:
print('Opção invalida')
voltar_ao_menu()
def voltar_ao_menu():
input('Digite uma tecla para voltar ao menu principal')
menu()
def criando_objeto():
nome = input('Digite o um nome para o restaurante: ')
categoria = input('Digite o nome da categoria do restaurante: ')
while True:
escolha = input('Digite 1 para ativar o restaurante e 2 para deixar inativo: ')
if escolha == '1':
ativo = True
break
elif escolha == '2':
ativo = False
break
else:
print('Erro: Valor invalido!')
restaurante = Restaurante(nome,categoria,ativo)
restaurantes.append(restaurante)
voltar_ao_menu()
def listando_objetos():
for restaurante in restaurantes:
print(vars(restaurante))
voltar_ao_menu()
def seleciona_restaurante_individual():
nome = input('Digite o nome do restaurante: ')
for restaurante in restaurantes:
if restaurante.nome == nome:
print(f'Nome: {restaurante.nome}')
print(f'Categoria: {restaurante.categoria}')
print(f'Ativo: {restaurante.ativo}')
print('Restaurante ativo' if restaurante.ativo else 'Restaurantre inativo' )
break
else:
print('Restaurante não encontrado')
voltar_ao_menu()
def altera_atributos():
restaurante_selecionado = input('Digite o nome do restaurante')
for restaurante in restaurantes:
if restaurante.nome == restaurante_selecionado:
print('Selecione a opção que deseja alterar.')
print('1. Nome')
print('2. Categoria')
print('3. Status')
opcao_selecionada = input('Digite uma opção: ')
if opcao_selecionada == '1':
novo_nome = input(f'Digite um novo nome para o restaurante {restaurante.nome}: ')
restaurante.nome = novo_nome
print('Nome alterado')
voltar_ao_menu()
break
elif opcao_selecionada == '2':
nova_categoria = input(f'Digite uma nova categoria para o restaurante {restaurante.nome}: ')
restaurante.categoria = nova_categoria
print('Categoria alterada')
voltar_ao_menu()
break
elif opcao_selecionada == '3':
print('Atualmente o restaurante está ativo' if restaurante.ativo else 'Atualmente o status do restaurante está inativo ')
alteracao = input('Deseja alterar [s/n]? ')
if alteracao == 's':
restaurante.ativo = not restaurante.ativo
print('Status alterado')
voltar_ao_menu()
break
elif alteracao == 'n':
print('Status não alterado')
voltar_ao_menu()
break
else:
print('Opção invalida')
return altera_atributos()
else:
print('Opção invalida')
else:
print('Restaurante não encontrado')
def main():
menu()
if __name__ == '__main__':
main()