+−⟲ Conceitos em Python Variáveis Propriedades Tipos de Métodos Tipos de Classes Variáveis de Classe Variáveis de Instância Definidas na classe Compartilhadas por todas as instâncias Acessíveis pela classe ou instância Uso comum a todas as instâncias Exemplo: Animal.especie Definidas nos métodos (geralmente __init__) Específicas para cada instância Acessíveis apenas pela instância Exemplo: self.nome, self.idade Encapsulam variáveis de instância Controlam o acesso e a modificação Usam decoradores @property, @.setter, @.deleter Permitem validação de dados Facilitam cálculos dinâmicos Exemplo: ContaBancaria.saldo Métodos de Instância Métodos de Classe Definidos com self Acessam e modificam dados da instância Exemplo: def metodo(self): Definidos com @classmethod Acessam e modificam dados da classe Usam cls como primeiro argumento Exemplo: def metodo(cls): Classes Regulares Classes Abstratas Dataclasses Classes comuns para criar objetos Definem métodos e variáveis de instância Exemplo: class MinhaClasse: Definidas com abc.ABC Podem ter métodos abstratos Não podem ser instanciadas diretamente Exemplo: class MinhaClasseAbstrata(ABC): Definidas com @dataclass Geram automaticamente métodos init, repr, etc. Facilitam a criação de classes para armazenar dados Exemplo: @dataclass class MinhaDataClass: Dados específicos de cada objeto Métodos Estáticos Definidos com @staticmethod Não acessam dados da instância nem da classe Funcionam como funções normais dentro da classe Exemplo: def metodo(): Criam instâncias da classe com lógica adicional Podem retornar diferentes tipos de objetos Exemplo: def metodo(cls, args): 📍📍[[Metodos de fabrica]] 📍📍[[Funcoes utilitarias]] 📍📍[[Diferenca de Metodos de classe e estaticos]] 📍📍[[Propriedades de variaveis em Python]] 📍📍[[Conceitos de POO em Python]] 📍📍[[Variaveis de classe e de instancia]]