Python OOPs: Classe, Objeto, Herança e Construtor com Exemplo

OOPs em Python

OOPs em Python é uma abordagem de programação que se concentra no uso de objetos e classes da mesma forma que outras linguagens de programação gerais. Os objetos podem ser quaisquer entidades do mundo real. Python permite que os desenvolvedores desenvolvam aplicativos usando a abordagem OOPs com foco principal na reutilização de código. É muito fácil criar classes e objetos em Python.

O que é uma aula?

Uma aula em Python é um agrupamento lógico de dados e funções. Dá a liberdade de criar estruturas de dados que contenham conteúdo arbitrário e, portanto, facilmente acessíveis.

Por exemplo, para qualquer funcionário do banco que queira obter os dados do cliente on-line, vá para classe de cliente, onde todos os seus atributos, como detalhes da transação, detalhes de retirada e depósito, dívidas pendentes, etc., seriam listados.

Como definir Python aulas

Para definir a classe, você precisa considerar os seguintes pontos

Passo 1) In Python, as classes são definidas pelo "Aula" palavra chave

class myClass():

Passo 2) Dentro das classes, você pode definir funções ou métodos que fazem parte desta classe

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Aqui definimos o método1 que imprime “Guru99”.
  • Outro método que definimos é o método2 que imprime “Teste de Software”+ SomeString. SomeString é a variável fornecida pelo método de chamada

Passo 3) Tudo em uma classe é indentado, assim como o código na função, loop, instrução if, etc. Qualquer coisa que não seja indentada não está na classe

Definir Python aulas

NOTA: Sobre o uso de “self” em Python

  • O auto-argumento refere-se ao próprio objeto. Daí o uso da palavra eu. Portanto, dentro deste método, self se referirá à instância específica deste objeto que está sendo operado.
  • Self é o nome preferido por convenção por Pythons para indicar o primeiro parâmetro dos métodos de instância em Python. Faz parte do Python sintaxe para acessar membros de objetos

Passo 4) Para fazer um objeto da classe

c = myClass()

Passo 5) Para chamar um método em uma classe

c.method1()
    c.method2(" Testing is fun")
  • Observe que quando chamamos o método1 ou o método2, não precisamos fornecer a palavra-chave própria. Isso é tratado automaticamente para nós pelo Python tempo de execução.
  • Python o tempo de execução passará o valor “self” quando você chamar um método de instância na instância, independentemente de você o fornecer deliberadamente ou não
  • Você apenas precisa se preocupar com os argumentos não-próprios

Passo 6) Aqui está o código completo

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Como funciona a herança

Herança é um recurso usado na programação orientada a objetos; refere-se à definição de uma nova classe com menos ou nenhuma modificação em uma classe existente. A nova classe é chamada classe derivada e daquele que ele herda é chamado de base. Python suporta herança; também suporta heranças múltiplas. Uma classe pode herdar atributos e métodos de comportamento de outra classe chamada subclasse ou classe herdeira.

Definir Python aulas

Python Sintaxe de herança

class DerivedClass(BaseClass):
    body_of_derived_class

Passo 1) Execute o seguinte código

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Observe que em childClass, method1 não está definido, mas é derivado do pai myClass. A saída é “Guru99”.

Passo 2) Remova o comentário das linhas 8 e 10. Execute o código

Agora, o método 1 está definido em childClass e a saída “childClass Method1” é mostrada corretamente.

Passo 3) Remova o comentário da linha nº 9. Execute o código

Você pode chamar um método da classe pai usando a sintaxe

ParentClassName.MethodName(self)

No nosso caso, chamamos myClass.method1(self) e Guru99 é impresso conforme esperado

4º Passo) Remova o comentário da linha nº 19. Execute o código.

O método 2 da classe filha é chamado e “childClass method2” é impresso conforme esperado.

Python Construtores

Um construtor é uma função de classe que instancia um objeto com valores predefinidos.

Começa com um sublinhado duplo (_). É o método __init__()

No exemplo abaixo, estamos pegando o nome do usuário usando o construtor.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

A saída será:

Bem vindo ao Guru99, Alex

Python 2 Exemplo

Os códigos acima são Python 3 exemplos, se você quiser correr Python 2 considere o seguinte código.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Aprenda nosso próximo tutorial sobre Polimorfismo em Python

Resumo

“Classe” é um agrupamento lógico de funções e dados. Python classe fornece todos os recursos padrão da Programação Orientada a Objetos.

  • Mecanismo de herança de classe
  • Uma classe derivada que substitui qualquer método de sua classe base
  • Um método pode chamar o método de uma classe base com o mesmo nome
  • Python As classes são definidas por palavra-chave "classe" se
  • Dentro das classes, você pode definir funções ou métodos que fazem parte da classe
  • Tudo em uma classe é recuado, assim como o código na função, loop, instrução if, etc.
  • O argumento do self em Python refere-se ao próprio objeto. Self é o nome preferido por convenção por Pythons para indicar o primeiro parâmetro dos métodos de instância em Python
  • Python o tempo de execução passará o valor “self” automaticamente quando você chamar um método de instância na instância, independentemente de você o fornecer deliberadamente ou não
  • In Python, uma classe pode herdar atributos e métodos de comportamento de outra classe chamada subclasse ou classe herdeira.