1
resposta

[Sugestão] Hora da prática

class restaurante:
    #alterado a classe nome par Bistrô
    Nome = 'Bistrô'
    categoria = ''
    ativo = False

restaurante_burguerfeliz = restaurante()
restaurante_burguerfeliz.nome = 'Hambúrguer Feliz'
restaurante_burguerfeliz.categoria = 'Gourmet'

restaurante_pizzaloid = restaurante()
restaurante_pizzaloid.nome = 'Pizza Place'
restaurante_pizzaloid.categoria = 'Fast Food'
#mudado instância ativo do pizza para True
restaurante_pizzaloid.ativo = True

restaurante_praca = restaurante()
restaurante_praca.nome = 'Praça'
#mudado a categoria do restaurante praça para Italiana
restaurante_praca.categoria = 'Italiana'

restaurantes = [restaurante_pizzaloid, restaurante_burguerfeliz]

#Verificar se o restaurante praça está ativo ou não
if restaurante_praca.ativo == False:
    print('O Restaurante não está ativo!')
else: 
    print('O Restaurante está ativo')

#Acesar o valor do atributo de classe categoria da classe restaurante e armazenar em uma variável chamada categoria
categoria = restaurante.categoria

#Verficiar instância da pizzaloid
print(restaurante_pizzaloid.categoria)

#printado o nome e a categoria da instacia restaurante praça
print(f'Nome: {restaurante_praca.nome} | Categoria: {restaurante_praca.categoria}')
1 resposta

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!