Um guia completo sobre conceitos de POO em Python

Publicados: 2020-10-22

A Programação Orientada a Objetos ou OOP tem sido parte integrante do mundo do software há algum tempo. É um excelente paradigma de programação que oferece um certo nível de liberdade e melhora as realizações de programação para o desenvolvedor.

Existem certos conceitos e princípios básicos que todo desenvolvedor deve conhecer. Eles conduzem a premissa para o desenvolvimento de um aplicativo usando esse modelo.

Aqui, vamos dar uma olhada em alguns dos conceitos de POO cruciais, porém básicos, em Python . Esses conceitos impulsionam os programadores a alcançar melhores resultados, bem como a modelar seus aplicativos de forma enriquecedora.

Índice

O que é programação orientada a objetos?

Para os não iniciados, é aqui que vamos começar nossa indução. Vamos entender OOPs como um leigo entenderia, para obter uma compreensão mais profunda de como podemos resolver isso.

Nesta estrutura de programação, você pode combinar facilmente coisas com propriedades ou comportamentos semelhantes em um único objeto. Se você está falando sobre demografia, então isso se torna um objeto único para este modelo de programação. Da mesma forma, se você está falando sobre ações a serem tomadas, então isso se torna outro objeto.

Eles são todos objetos que contêm dados brutos. Sua solução de software programará esses objetos de forma que eles cumpram o objetivo final juntos. Esses objetos executarão algumas ações juntos, conforme programado por você, e fornecerão o resultado.

Um excelente exemplo para ajudar a entender isso seria um programa de e-mail.

Digamos que você tenha um objeto que contém o conteúdo do email, como o nome do destinatário e o assunto. Há um segundo objeto que detalha o anexo e o envio do email. Você criará um programa que combinará automaticamente esses objetos, garantirá que um email totalmente escrito esteja pronto com os anexos desejados e o enviará ao destinatário.

É assim que a POO funciona. No entanto, alguns conceitos impulsionam isso em ação. Vamos dar uma olhada rápida nesses conceitos e como eles funcionam.

Leia: Python é uma linguagem orientada a objetos?

Como definir uma classe?

A classe é o que define cada objeto e é um aspecto importante dos conceitos de OOPs em Python . Digamos que você tenha quatro objetos, como olhos, ouvidos, boca e nariz. Estas são partes de um rosto, que é a classe.

Vamos começar com como definir uma classe.

Digamos que você esteja falando sobre uma classe chamada email.

E-mail da turma:

passar

É assim que a classe é definida. Use o “pass” para que quando você executar o código em um compilador, não haja bugs emitidos.

Apenas definir a classe pode não ajudar muito. Você precisa adicionar algumas propriedades para torná-lo atraente e o código útil. Então, você precisa adicionar objetos à sua classe.

O método ._init_() é o que prova ser útil ao definir as propriedades dentro de uma classe.

Isso garantirá que toda vez que você criar um novo objeto para a classe, esse método definirá os parâmetros para o estado inicial, inicializando um novo objeto a cada vez.

O primeiro parâmetro para esse método sempre seria self, mesmo quando você atribui vários parâmetros a ele.

Então, o que acontece neste caso? Digamos que você criou uma nova classe. A instância é transferida para o parâmetro self. Como resultado, o ._init_() pode atribuir novas propriedades ao objeto definido.

Se você ainda está pensando em como usá-lo, vamos entendê-lo através de um exemplo.

E-mail da turma:

def ._init_(self, nome, destinatário, endereço):

self.name = nome

self.recipient = destinatário

self.address = endereço

Vamos dividir este código para melhor compreensão.

O recuo expresso no código acima é crítico. Você deve corresponder ao mesmo ao escrever seu programa usando OOPs em Python . Vamos entender a variável self no código acima.

O self.name produz um atributo chamado name. O valor do parâmetro name é atribuído a este atributo. Da mesma forma, atributos e valores também são atribuídos às variáveis ​​do outro eu.

Esses atributos são conhecidos como instância. Você precisará especificar o valor de cada atributo mencionado em uma instância específica. Digamos que existam dois tipos de e-mails – boas-vindas e nutrição. O destinatário do e-mail seria diferente para ambas as instâncias (e-mails de boas-vindas e e-mails de nutrição).

Os atributos de classe, por outro lado, são diferentes; eles conterão o mesmo valor para todas as instâncias de classe. Por exemplo, todos esses são emails de entrada. Este é o atributo de classe que você pode definir para eles.

E-mail da turma:

#Atributo de classe

E-mail: “E-mails de entrada”

def ._init_(self, nome, destinatário, endereço):

self.name = nome

self.recipient = destinatário

self.address = endereço

Saiba mais sobre: ​​Como codificar, compilar e executar projetos Java

Noções básicas sobre variáveis ​​de classe e instância

Vamos pegar o exemplo acima, onde criamos um atributo de classe, bem como duas variáveis ​​de instância para entender melhor as OOPs em Python .

E-mail da turma:

E-mail: “E-mails de entrada”

def ._init_(self, nome, destinatário, endereço):

self.name = nome

self.recipient = destinatário

self.address = endereço

Vamos falar sobre instanciar os objetos dentro desta classe. Você precisa definir valores para cada um desses objetos. Este será o valor inicial para cada objeto, conforme discutido na parte anterior do guia. Caso você não atribua valores a esses objetos, você receberá um TypeError.

>>> E-mail()

Traceback (última chamada mais recente):

Arquivo “<pyshell#6>”, linha 1, em <module>

E-mail ()

TypeError: __init__() faltando 4 argumentos posicionais: 'name', 'recipient' e 'address'

Podemos adicionar valor imediatamente após o nome da classe.

Nurture Email = Email (Nurture, David, [email protected])

E-mail de boas-vindas = E-mail (Bem-vindo, Margarida, [email protected])

Com o código acima, geramos duas instâncias, para um email de nutrição e um email de boas-vindas. Vamos verificar o __init__() definido após a instância da classe para o código acima. Vemos quatro parâmetros, incluindo self. No entanto, nenhuma variável foi mencionada para self. Vamos entender por quê?

Então, sempre que você cria um novo objeto dentro de uma classe, você está instanciando a classe. Você estará atribuindo um endereço de memória enquanto faz isso, onde a variável será armazenada. Assim que você instanciar um novo objeto, o Python criará automaticamente uma instância, e ela será passada para a primeira variável no método .__init__(). Como resultado, o self é removido neste método.

Com a variável de classe, você pode garantir que cada instância que você criou tenha uma variável ou valor associado a ela. Isso garantirá resultados mais rápidos e fáceis e, portanto, conclusões mais seguras para sua programação.

Leia também: Deve ler 47 perguntas e respostas da entrevista OOPS para calouros e experientes

Resumindo

Entendemos os vários aspectos da criação de uma classe, objeto e método usando o modelo de programação Python OOPs aqui. Além disso, também entendemos conceitos como instâncias e instanciação, que são fundamentais para a programação OOPs em Python. Em seguida, você precisará entender os princípios que regem essas instâncias e classes, como herança, polimorfismo, abstração e encapsulamento. Eles são conceitos básicos de OOPs em Python que orientam seu aplicativo e seus resultados.

Para avançar no funil do Python, você precisa ter o básico claro e enraizado. Então, mergulhe nas aulas e entenda como funciona. Brinque um pouco com essas variáveis ​​e entenda seus resultados antes de configurar seu aplicativo.

Se você está curioso para aprender ciência de dados para estar na frente dos avanços tecnológicos em ritmo acelerado, confira o PG Diploma in Data Science do upGrad & IIIT-B e se qualifique para o futuro.

Por que usamos OOPs?

A Programação Orientada a Objetos (OOP) é ​​uma estrutura de programação que se baseia no desenvolvimento de 'objetos' reutilizáveis ​​com seus atributos e comportamentos que podem ser manipulados, empacotados e manipulados. Python oferece suporte a OOP e outros frameworks. Em Python, você obtém OOP usando classes. Python tem todas as características usuais da programação orientada a objetos. Os desenvolvedores utilizam a POO em seus aplicativos Python porque torna os códigos mais reutilizáveis ​​e facilita o trabalho com programas maiores. Como uma classe só pode ser definida uma vez e utilizada várias vezes, os sistemas OOP impedem que você duplique o código. Como resultado, o OOP simplifica seguir o conceito 'Don't Repeat Yourself' (DRY).

O que é uma Classe?

Uma classe Python é semelhante a um blueprint para gerar um novo objeto. Um objeto é qualquer coisa que você deseja modificar ou alterar durante a codificação. Quando instanciamos um objeto de classe, o que acontece quando definimos uma variável, um novo objeto é criado do zero. Objetos de classe podem ser reutilizados quantas vezes forem necessárias. Uma classe é usada para construir cada item. Considere que este é o modelo para um certo tipo de item. As classes listam os atributos necessários para esse tipo de objeto, mas não atribuem um valor a eles. As classes também especificam métodos que são compartilhados por todos os objetos do mesmo tipo.

O que é uma variável de instância?

Uma instância de classe possui variáveis ​​de instância em Python. O valor de uma variável de instância pode mudar com base na instância à qual ela está vinculada. Isso é diferente de uma variável de classe, que só pode ter um valor atribuído a ela. As variáveis ​​de instância são declaradas dentro de um método de classe. Quando declaramos uma classe, podemos atribuir valores a variáveis ​​de instância. Quando declaramos a classe, fornecemos os valores que desejamos atribuir como argumentos.