1
resposta

[Projeto] PROJETO POO - PRATICA CLASSES

class Restaurante():
    def __init__(self, nome, categoria):
        self.nome = nome
        self.categoria = categoria
        self.ativo = False

    def estado_restaurante(self):
        if self.ativo:
            return f'O restaurante {self.nome} está ativo.'
        else:
            return f'O restaurante {self.nome} está inativo.'
        
    def alterar_estado(self, ativo):
        self.ativo = not self.ativo
    

# 1) Atribua o valor 'Italiana' ao atributo categoria da instância restaurante_praca da classe Restaurante.
print('Resolução 1')
restaurante1 = Restaurante('Pizza Italiana', 'Pizzaria')
print()

# 2) Acesse o valor do atributo nome da instância restaurante_praca da classe Restaurante.
print('Resolução 2')
nome_do_restaurante = restaurante1.nome
print(nome_do_restaurante)
print()

# 3) Verifique o valor inicial do atributo ativo para a instância restaurante_praca e exiba uma mensagem informando se o restaurante está ativo ou inativo.
print('Resolução 3')
print(restaurante1.estado_restaurante())
print()

# 4) Acesse o valor do atributo de classe categoria diretamente da classe Restaurante e armazene em uma variável chamada categoria.
print('Resolução 4')
categoria = restaurante1.categoria
print(categoria)
print()

# 5) Altere o valor do atributo nome para 'Bistrô'.
print('Resolução 5')
restaurante1.nome = 'Bistrô'
print(restaurante1.nome)
print()
# 6) Crie uma nova instância da classe Restaurante chamada restaurante_pizza com o nome 'Pizza Place' e categoria 'Fast Food'.
print('Resolução 6')
restaurante2 = Restaurante('Pizza Place', 'Fast Food')
print(restaurante2.nome, restaurante2.categoria)
print()

# 7) Verifique se a categoria da instância restaurante_pizza é 'Fast Food'.
print('Resolução 7')
if restaurante2.categoria == 'Fast Food':
    print(f'A categoria do restaurante {restaurante2.nome} é Fast Food.')
else:
    print(f'A categoria do restaurante {restaurante2.nome} não é Fast Food.')
print()

# 8) Mude o estado da instância restaurante_pizza para ativo.
print('Resolução 8')
restaurante2.alterar_estado(restaurante2.ativo)
print(restaurante2.estado_restaurante())

# 9) Imprima no console o nome e a categoria da instância restaurante_praca.
print(f'Nome: {restaurante1.nome}, Categoria: {restaurante1.categoria}')
1 resposta

Bom dia! Tudo bem?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de classes e atributos para estruturar informações sobre restaurantes, utilizou muito bem o encapsulamento com métodos para controlar o estado da instância e ainda compreendeu a importância do reuso de código através de instâncias para representar diferentes objetos.

Uma dica para evoluir ainda mais é implementar o método __str__ na classe, permitindo uma exibição mais amigável das informações do restaurante. Assim:

class Restaurante():
    def __init__(self, nome, categoria):
        self.nome = nome
        self.categoria = categoria
        self.ativo = False

    def __str__(self):
        estado = 'ativo' if self.ativo else 'inativo'
        return f'Restaurante: {self.nome} | Categoria: {self.categoria} | Estado: {estado}'

    def estado_restaurante(self):
        return f'O restaurante {self.nome} está {"ativo" if self.ativo else "inativo"}.'

    def alterar_estado(self, ativo):
        self.ativo = not self.ativo

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!