1
resposta

Repostas Hora da prática: métodos especiais e atributos

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 = 0):
        self.modelo = modelo
        self.cor = cor
        self.ano = ano
    def __str__(self):
        return f'MODELO: {self.modelo} | COR: {self.cor} | ANO: {self.ano}'

carro1 = Carro('Toyota Corolla', 'Preto', 2021)
print(carro1)

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 = '', localizacao = '', fundacao = 0):
        self.nome = nome
        self.categoria = categoria
        self.localizacao = localizacao
        self.fundacao = fundacao
        self.ativo = False
    def __str__(self):
        return f'NOME: {self.nome} | CATEGORIA: {self.categoria} | LOCALIZAÇÃO: {self.localizacao} | FUNDAÇÃO: {self.fundacao} | ATIVO: {self.ativo}'

restaurante1 = Restaurante('Rigatonys', 'Culinária italiana', 'Rua Alberto Queiroz, 407', 1987)

print(restaurante1)

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):
        return f'NOME: {self.nome} | CATEGORIA: {self.categoria}'

restaurante1 = Restaurante('Rigatonys', 'Culinária italiana')

print(restaurante1)

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.

class Restaurante:
    def __init__(self, nome = '', categoria = '', localizacao = '', fundacao = 0):
        self.nome = nome
        self.categoria = categoria
        self.localizacao = localizacao
        self.fundacao = fundacao
        self.ativo = False
    def __str__(self):
        return f'NOME: {self.nome} | CATEGORIA: {self.categoria} | LOCALIZAÇÃO: {self.localizacao} | FUNDAÇÃO: {self.fundacao} | ATIVO: {self.ativo}'

restaurante1 = Restaurante('Rigatonys', 'Culinária italiana', 'Rua Alberto Queiroz, 407', 1987)

print(restaurante1)

#A forma que realizei o exercício 2 acabou também servindo como resposta para o exercício 4 (Sorte minha!)

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:
    lista_clientes = []
    def __init__(self, nome = '', idade = 0, telefone = 0, cidade = ''):
        self.nome = nome
        self.idade = idade
        self.telefone = telefone
        self.cidade = cidade
        Cliente.lista_clientes.append(self)
    def __str__(self):
        return f'NOME: {self.nome} | IDADE: {self.idade} | TELEFONE: {self.fundacao} | CIDADE: {self.cidade}'
    def listar_clientes():
        for cliente in Cliente.lista_clientes:
            print(f'NOME: {cliente.nome} | IDADE: {cliente.idade} | TELEFONE: {cliente.telefone} | CIDADE: {cliente.cidade}')

cliente1 = Cliente('Alberto', 26, 16999764347, 'Itápolis')
cliente2 = Cliente('Rogério', 54, 14973863545, 'Bauru')
cliente3 = Cliente('Francisco', 42, 16357982124, 'Ribeirão Preto')

Cliente.listar_clientes()
1 resposta

Oi, André! Tudo bem?

Obrigada por compartilhar sua solução detalhada com a comunidade Alura. Parabéns pela dedicação.

Gostei de como você estruturou as classes e os métodos especiais str para facilitar a leitura das instâncias.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!