Este Python OOP explica claramente a programação orientada a objetos Python para que você possa aplicá-la para desenvolver software de forma mais eficaz.
Ao final deste módulo Python OOP, você terá um bom conhecimento dos princípios de orientação a objetos. E você saberá como usar a sintaxe Python para criar aplicativos de software confiáveis e robustos.
O que você aprenderá
- Crie objetos em Python definindo classes e métodos.
- Estenda classes usando herança.
- Princípios SOLID em programação orientada a objetos.
Para quem é este tutorial?
Se você é novo em programação orientada a objetos ou se possui habilidades básicas em Python e deseja aprender a fundo como e quando aplicar corretamente OOP em Python, este é o tutorial para você.
Seção 1. Classes e objetos
- Programação orientada a objetos – apresente a você os conceitos importantes da programação orientada a objetos Python.
- Classe – aprenda como definir uma classe e criar novos objetos a partir da classe.
- Variáveis de classe – explique as variáveis de classe (ou atributos)
- Métodos de instância – orienta você sobre métodos de instância e ajuda a entender as diferenças entre uma função e um método.
- __init__() – mostra como usar o método __init__ para inicializar os atributos do objeto.
- Variáveis de instância – entenda as variáveis de instância.
- Atributos privados – aprenda sobre atributos privados e como usá-los de forma eficaz.
- Atributos de classe – entenda os atributos de classe e, mais importante, quando você deve usar atributos de classe.
- Métodos estáticos – explica métodos estáticos e mostra como usá-los para agrupar funções relacionadas em uma classe.
Seção 2. Métodos especiais
- Método __str__ – mostra como usar o método __str__ dunder para retornar a representação de string de um objeto.
- Método __repr__ – aprenda como usar o método __repr__ e a principal diferença entre os métodos __str__ e __repr__.
- Método __eq__ – aprenda como definir a lógica de igualdade para comparar objetos por valores.
- Método __hash__ – mostra como tornar uma classe hashável usando o método __has__.
- Método __bool__ – orienta você sobre como determinar se um objeto personalizado é Verdadeiro ou Falso usando o método __bool__.
- Método __del__ – entenda como funciona o método __del__.
Seção 3. Propriedade
- Propriedade – mostra como usar a classe de propriedade para criar uma propriedade.
- @property decorador – aprenda a usar o @property decorador para criar um imóvel.
- Propriedade somente leitura – aprenda como definir propriedades somente leitura e usá-las para propriedades computadas.
- Excluir uma propriedade – orienta você sobre como excluir uma propriedade de um objeto.
Seção 4. Herança única
- Herança – explicamos o conceito de herança e como definir uma classe que herda de outra classe.
- Métodos de substituição – mostram como funcionam os métodos de substituição.
- super() – aprenda como delegar aos métodos da classe pai a partir de um método da classe filha.
- __slots__ – use __slots__ para tornar a classe mais eficiente em termos de memória.
- Classe abstrata – aprenda o que são classes abstratas e como defini-las.
Seção 5. Enumeração
- Enumeração – mostra como definir uma enumeração em Python.
- Enum Aliases & @enum.unique – apresenta os aliases enum e como usar o decorador enum.unique para garantir a exclusividade dos valores dos membros.
- Personalize e estenda enumerações – aprenda como personalizar os comportamentos das classes enum e como estender uma classe enum personalizada.
- auto – use a classe enum
auto
para gerar valores exclusivos para os membros da enumeração.
Seção 6. Princípios SÓLIDOS
Esta seção apresenta os princípios SOLID da programação orientada a objetos. Esses cinco princípios de design tornam seus designs de software mais fáceis de manter e flexíveis.
- Princípio da Responsabilidade Única – uma classe deve ter uma responsabilidade única.
- Princípio Aberto/Fechado – uma classe deve ser aberta para extensão, mas fechada para modificação.
- Princípio de Substituição de Liskov – uma classe filha deve ser capaz de substituir sua classe pai.
- Princípio de segregação de interface – use muitas interfaces pequenas em vez de uma interface grande.
- Princípio de Inversão de Dependência – torna o módulo de alto nível dependente da abstração, não o módulo de baixo nível.
Seção 7. Herança múltipla
- Herança múltipla – aprenda como implementar herança múltipla e entenda como funciona a ordem de resolução de métodos (MRO) em Python.
- Mixin – apresente o conceito de mixin e como implementá-lo em Python.
Seção 8. Descritores
- Descritores – explicam como funcionam os descritores e como usá-los para tornar o código reutilizável.
- Descritores de dados versus não dados – entenda as diferenças entre descritores de dados e não dados
Seção 9. Metaprogramação
- __new__ – aprenda como Python usa o método __new__ para criar uma nova instância de uma classe.
- classe de tipo – mostra como criar dinamicamente uma classe usando a classe de tipo.
- Metaclasse – explica a metaclasse e mostra como definir uma metaclasse customizada para criar outras classes.
- Exemplo de metaclasse – mostra um exemplo de metaclasse que permite injetar muitas funcionalidades nas classes.
- dataclass – aproveite o dataclass para adicionar métodos especiais como __init__ e __repr__ a classes personalizadas.
Seção 10. Exceções
- Exceções – aprenda sobre exceções no contexto de objetos
- Tratamento de exceções – orienta você sobre como lidar com exceções da maneira correta usando a instrução try.
- Raise Exceptions – mostra como usar a instrução raise para levantar exceções.
- Levantar exceção da causa – aprenda como modificar e encaminhar uma exceção existente com uma causa.
- Exceções personalizadas – orienta você nas etapas de criação de uma classe de exceção personalizada.
Anterior