1
resposta

Métodos Especiais e Atributos POO Python

1. Implemente uma classe chamada Carro com os atributos básicos, como modelo, cor e ano. Crie uma instância dessa classe e atribua valores aos seus atributos.

class Carro:
    def __init__(self, modelo, cor, ano):
        self.modelo = modelo
        self.cor = cor
        self.ano = ano
    def __str__(self):
        return f'{self.modelo}, {self.cor}, ano:{self.ano}'
    
c1 = Carro('Byd', 'Prata', 2025)    
c2 = Carro('Gol', 'Preto', 2008)    
c3 = Carro('Monza', 'Azul', 1994)   

2. Crie uma classe chamada Restaurante com os atributos nome, categoria, ativo e crie mais 2 atributos. Instancie um restaurante e atribua valores aos seus atributos.

class Restaurante:
    def __init__(self, nome, categoria, ativo, avaliacao, cidade):
        self.nome = nome
        self.categoria = categoria
        self.ativo = ativo
        self.avaliacao = avaliacao
        self.cidade = cidade
    
    def __str__(self):
        if self.ativo==True:
            self.ativo = 'ativo'
        else:
            self.ativo = 'não ativo'
        return f'{self.nome}, categoria: {self.categoria}, status: {self.ativo}, nota: {self.avaliacao}, cidade: {self.cidade}'

r1 = Restaurante('O Boteco do Amado', 'Brasileira', True, 4.4, 'Santos')

3.Modifique a classe Restaurante adicionando um construtor que aceita nome e categoria como parâmetros e inicia ativo como False por padrão. Crie uma instância utilizando o construtor.

class Restaurante:
    def __init__(self, nome, categoria):
        self.nome = nome
        self.categoria = categoria
        self.ativo = False
    
    def __str__(self):
        if self.ativo==True:
            self.ativo = 'ativo'
        else:
            self.ativo = 'não ativo'
        return f'{self.nome}, categoria: {self.categoria}, status: {self.ativo}'

r2 = Restaurante('Sushi do Mitoma', 'Japonesa')

4.Adicione um método especial str à classe Restaurante para que, ao imprimir uma instância, seja exibida uma mensagem formatada com o nome e a categoria. Exiba essa mensagem para uma instância de restaurante.

def __str__(self):
     if self.ativo==True:
         self.ativo = 'ativo'
     else:
         self.ativo = 'não ativo'
     return f'Restaurante: {self.nome}, categoria: {self.categoria}, status: {self.ativo}'
     
r2 = Restaurante('Sushi do Mitoma', 'Japonesa')

print(r2)

5. Crie uma classe chamada Cliente e pense em 4 atributos. Em seguida, instancie 3 objetos desta classe e atribua valores aos seus atributos através de um método construtor.

class Cliente:
    clientes = []
    def __init__(self, cod_cliente, nome, idade, valor_gasto_loja):
        self.cod_cliente = cod_cliente
        self.nome = nome
        self.idade = idade
        self.valor_gasto_loja = valor_gasto_loja
        Cliente.clientes.append(self)

    def listar_clientes():
        for c in Cliente.clientes:
            print(f'Cliente {c.cod_cliente}, nome: {c.nome}, {c.idade} anos, valor total gasto: R${c.valor_gasto_loja}')

c1 = Cliente(1, 'Paulo', 20, 799.90)
c2 = Cliente(2, 'Maria', 32, 1349.98)
c3 = Cliente(3, 'Juliana', 26, 453.99)

Cliente.listar_clientes()

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Paulo! Como vai?

Agradeço por compartilhar.

Gostei da forma como você estruturou suas classes, principalmente ao usar o método especial __str__ para personalizar a saída das instâncias. Isso deixa o código mais claro e fácil de entender.

Continue praticando dessa forma, pois você já está aplicando bem os conceitos de POO.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!