Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Não consegui absorver direito essas aulas

Tentei reassistir algumas vezes, ler mais somente o conteúdo da aula e ainda não consegui entender muito bem qual o objetivo e uso claro do property, quando falou sobre classe eu consegui até entender, tanto que fiz o exercício da aula anterior e funcionou de certa forma (Segue abaixo o exercício anterior para fins de explicação, ignorem as piadas, estudo os códigos fazendo piada com amigos para tentar usufruir da criatividade)

# 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

prius = Carro('Hibrido', 'Perolado', 2018)

# 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, bairro, preço, ativo = False):
        self.nome = nome
        self.categoria = categoria
        self.bairro = bairro
        self.preço = preço
        self.ativo = ativo

    def __str__(self):
        return f'{self.nome} | {self.categoria}'
    
colorado = Restaurante('Colorado', 'Cervejaria', 'Valparaíso', 'Alto', True)

print(colorado)

# 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.


# 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.



# 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:
    def __init__(self, nome, idade, cor, genero):
        self.nome = nome
        self.idade = idade
        self.cor = cor
        self.genero = genero

ferreira = Cliente('Ferreira', 25, 'Árabe', 'Calistenico')
nerdola = Cliente('Rafael', 23, 'Branquelo', 'Botafoguense')
vinicius = Cliente( 'Vinicius', 55, 'Anão', 'Gótico')

O problema foi quando começou a explicação de property nada mais entrou na minha cabeça, são muitos nomes diferentes, parametros, classe, atributos, property, init/str e não consegui absorver bem, percebi quanod cheguei agora no exercício e sinto que não aprendi nada.

Alguma dica de como reforçar esse conteúdo para tentar aprender mesmo?

1 resposta
solução!

Olá Vinicius, fiz um resumo das aulas, espero que te ajuda também só vou ficar devendo exemplo, pq aqui tem limite de caracteres rsrs

Classes em Python: Python é uma linguagem orientada a objetos, onde quase tudo é um objeto com propriedades e métodos. Uma classe é um "projeto" ou "molde" para criar objetos. Ela define um conjunto de atributos (propriedades) e métodos (funções) que descrevem o comportamento e as características dos objetos criados a partir dessa classe. Por exemplo, se você criar uma classe chamada "Restaurante", todos os restaurantes criados a partir dessa classe terão os mesmos tipos de atributos, como "nome" e "categoria".

Atributos: São as variáveis que pertencem a uma classe ou a uma instância de uma classe. Eles representam as características dos objetos criados a partir de uma classe. Por exemplo, em uma classe "Música", os atributos poderiam ser "artista", "música favorita" e "ano".

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Parâmetros: São as variáveis que são passadas para os métodos de uma classe ou funções em geral. Eles permitem que você personalize o comportamento desses métodos ou funções ao fornecer valores específicos ao chamá-los. No contexto de classes, um parâmetro comum é self, que é uma referência à instância atual da classe e é usada para acessar variáveis e métodos pertencentes à classe.

Funções Especiais:

  • dir(): Utilizada para identificar e entender métodos e atributos de uma classe que você não conhece.
  • vars(): Exibe os dicionários de atributos e métodos de uma classe.

Métodos Especiais:

  • __init__(): Função construtora que é executada ao iniciar uma classe. É usada para atribuir valores a propriedades ou realizar outras operações necessárias na criação de um objeto.
  • self: Como mencionado, é um parâmetro que faz referência à instância atual da classe. É usado para acessar as variáveis e métodos pertencentes à classe. No Python, self é o equivalente a this em outras linguagens como Java ou C#. Insira aqui a descrição dessa imagem para ajudar na acessibilidade
  • __str__(): Define a representação de um objeto em forma de string, controlando como o objeto é exibido quando convertido em uma string.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Métodos Próprios: Métodos personalizados podem ser criados dentro das classes para realizar operações específicas, como adicionar objetos a uma lista ou listar atributos de forma personalizada.

Métodos de Classe:

  • @classmethod: Permite a definição de métodos que podem ser chamados diretamente na classe sem a necessidade de criar uma instância do objeto. É comum usar cls como parâmetro para referenciar a classe dentro do método. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Propriedades:

  • @property: Modifica a forma de leitura de um atributo, permitindo que operações adicionais sejam realizadas antes de retornar o valor do atributo. É útil para encapsular dados e fornecer uma interface mais controlada para acessar os atributos.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeEncapsulamento: Refere-se à prática de restringir o acesso direto a alguns dos atributos de uma classe, tornando-os privados ou protegidos. Isso é feito para manter a integridade dos dados, impedindo que sejam alterados de maneira inadequada.