Oi, Gabriel! Tudo bem?
Ótimo código, parabéns pela elaboração e dedicação! Deixo apenas algumas sugestões: em Python, por convenção, os nomes das classes devem começar com letra maiúscula, por isso, em vez de class restaurante:
, seria melhor usar class Restaurante:
.
Somado a isso, no código, estamos usando atributos de classe para Nome
, categoria
e ativo
, se cada instância do restaurante deve ter seus próprios valores para esses atributos, seria melhor defini-los como atributos de instância, o que pode ser feito usando o método __init__
.
Podemos também definir a classe com o método __init__
para inicializar os atributos de instância e corrigir o acesso aos atributos de instância, deixando o nosso código da seguinte maneira:
class Restaurante:
def __init__(self, nome='', categoria='', ativo=False):
self.nome = nome
self.categoria = categoria
self.ativo = ativo
restaurante_burguerfeliz = Restaurante(nome='Hambúrguer Feliz', categoria='Gourmet')
restaurante_pizzaloid = Restaurante(nome='Pizza Place', categoria='Fast Food', ativo=True)
restaurante_praca = Restaurante(nome='Praça', categoria='Italiana')
# Verificar se o restaurante praça está ativo ou não
if not restaurante_praca.ativo:
print('O Restaurante não está ativo!')
else:
print('O Restaurante está ativo')
# Acessar o valor do atributo de classe categoria da classe Restaurante e armazenar em uma variável chamada categoria
# Note que agora a categoria é um atributo de instância, então você pode acessar diretamente da instância
categoria = restaurante_praca.categoria
# Verificar instância da pizzaloid
print(restaurante_pizzaloid.categoria)
# Printar o nome e a categoria da instância restaurante praça
print(f'Nome: {restaurante_praca.nome} | Categoria: {restaurante_praca.categoria}')
Com essas mudanças, o código fica mais alinhado com as boas práticas de Python e de Orientação a Objetos. Espero ter ajudado!
Um forte abraço e bons estudos!