1
resposta

Meu exercício completo

# Exercícios 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 Carros():
    modelo = ''
    fabricante = ''
    cor = ''
    ano = int

carro_urbano = Carros
carro_passeio = Carros

carro_urbano.modelo = 'sedan'
carro_urbano.fabricante = 'Ford'
carro_urbano.cor = 'Preto'
carro_urbano.ano = 2020

carro_passeio.modelo = 'offroad'
carro_passeio.fabricante = 'Fiat'
carro_passeio.cor = 'verde'
carro_passeio.ano = 2015


# Exercícios 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():
    nome = ''
    categoria = ''
    ativo = ''
    estacionamento_proprio = ''
    delivery = ''

restaurante_TiaRosa = Restaurante

restaurante_TiaRosa.nome = 'Tia Rosa Restaurante'
restaurante_TiaRosa.categoria = 'Comida caseira'
restaurante_TiaRosa.ativo = True
restaurante_TiaRosa.estacionamento_proprio = True
restaurante_TiaRosa.delivery = False



# Exercícios 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:
    
    restaurantes = []

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

       Restaurante.restaurantes.append(self)

  
rest1 = Restaurante('Luiggi', 'Italiano')


# Exercícios 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:
    
    restaurantes = []

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

        Restaurante.restaurantes.append(self)

    def __stg___(self):
        return f'{self.nome} | {self.categoria}'

    def listar_restaurantes():
        for musica in Musica.musicas:
            print (f'{musica.nome} | {musica.artista} | {musica.duracao}')
    
    
rest1 = Restaurante('Luiggi', 'Italiano')


# Exercícios 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, nome, cpf, sexo, idade)
        self.nome = ''
        self.CPF = ''
        self.sexo =''
        self.idade = int

cliente1 = Cliente('Ricardo', '123.467.789-00', 'Masculino', 53)
cliente2 = Cliente('Maria', '467.789.123-00', 'Feminino', 45)
cliente3 = Cliente('Marcos', '789.123.467-00', 'Masculino', 30)
1 resposta

Oi, Ricardo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu esforço em aplicar os conceitos de orientação a objetos ficou bem visível, especialmente na evolução da classe Restaurante com o uso de construtor e a tentativa de implementar o método especial __str__. Esse tipo de prática é ótimo para consolidar o aprendizado.

Uma dica interessante para o futuro é revisar como instanciar objetos corretamente. Quando você escreve carro_urbano = Carros, está apenas apontando para a classe, não criando uma instância. Veja este exemplo:


class Carro:
    def __init__(self, modelo, fabricante, cor, ano):
        self.modelo = modelo
        self.fabricante = fabricante
        self.cor = cor
        self.ano = ano

carro1 = Carro('Sedan', 'Ford', 'Preto', 2020)
print(carro1.modelo)

Esse código cria um objeto do tipo Carro com os atributos preenchidos corretamente.

Alura

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