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