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 o foco principal na capacidade de reutilização do código. É muito fácil criar classes e objetos em Python.
O que é uma classe?
Uma classe em Python é um agrupamento lógico de dados e funções. Ele 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 deseja obter os detalhes do cliente online iria para a classe do cliente , onde todos os seus atributos, como detalhes da transação, detalhes de retirada e depósito, dívida pendente, etc. seriam listados.
Neste tutorial, aprenderemos,
- Como definir classes Python
- Como funciona a herança
- Construtores Python
Como definir classes Python
Para definir a classe, você precisa considerar os seguintes pontos
Etapa 1) Em Python, as classes são definidas pela palavra-chave "Class"
class myClass():
Etapa 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étodo 1 que imprime "Guru99."
- Outro método que definimos é o método 2 que imprime "Teste de software" + SomeString. SomeString é a variável fornecida pelo método de chamada
Etapa 3) Tudo em uma classe é recuado, assim como o código na função, loop, instrução if, etc. Qualquer coisa não recuada não está na classe
NOTA : Sobre o uso de "self" em Python
- O auto-argumento se refere ao próprio objeto. Daí o uso da palavra self. Portanto, dentro desse método, self irá 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 da sintaxe Python para acessar membros de objetos
Etapa 4) Para fazer um objeto da classe
c = myClass()
Etapa 5) Para chamar um método em uma classe
c.method1()c.method2(" Testing is fun")
- Observe que, quando chamamos o método1 ou método2, não precisamos fornecer a palavra-chave self. Isso é feito automaticamente para nós pelo tempo de execução do Python.
- O tempo de execução do Python passará o valor "self" quando você chamar um método de instância na instância, quer você o forneça deliberadamente ou não
- Você só tem que se preocupar com os argumentos não-self
Etapa 6) Aqui está o código completo
# Arquivo de exemplo para trabalhar com classesclass myClass ():def method1 (self):imprimir ("Guru99")def method2 (self, someString):print ("Teste de Software: + someString)def main ():# exercitar os métodos da classec = minhaClasse ()c.method1 ()c.method2 ("Testar é divertido")if __name __ == "__main__":a Principal()
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 de classe derivada e daquela que ela herda é chamada de base . Python suporta herança; ele também oferece suporte a várias heranças . Uma classe pode herdar atributos e métodos de comportamento de outra classe chamada subclasse ou classe herdeira.
Sintaxe de herança Python
class DerivedClass(BaseClass):body_of_derived_class
Etapa 1) Execute o seguinte código
# Arquivo de exemplo para trabalhar com classesclass myClass ():def method1 (self):imprimir ("Guru99")class childClass (myClass):#def method1 (self):# myClass.method1 (self);#print ("childClass Method1")def method2 (self):imprimir ("childClass method2")def main ():# exercitar os métodos da classec2 = childClass ()c2.method1 ()# c2.method2 ()if __name __ == "__main__":a Principal()
Observe que em childClass, method1 não está definido, mas é derivado de myClass pai. A saída é "Guru99".
Etapa 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" é exibida corretamente.
Etapa 3) Retire a linha de comentários # 9. Execute o código
Você pode chamar um método da classe pai usando a sintaxe
ParentClassName.MethodName(self)
Em nosso caso, chamamos myClass.method1 (self) e Guru99 é impresso como esperado
Etapa 4 ) Retire a linha de comentários nº 19. Execute o código.
O método 2 da classe filha é chamado e "childClass method2" é impresso conforme o esperado.
Construtores Python
Um construtor é uma função de classe que instancia um objeto para valores predefinidos.
Ele começa com um sublinhado duplo (_). É 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 = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()
A saída será:
Bem-vindo ao Guru99, Alex
Exemplo de Python 2
Os códigos acima são exemplos do Python 3. Se você deseja executar no Python 2, considere o seguinte código
# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass 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 methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()
Resumo:
"Classe" é um agrupamento lógico de funções e dados. A classe Python 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
- Classes Python são definidos por palavra-chave "class" em si
- Dentro das classes, você pode definir funções ou métodos que fazem parte da classe
- Tudo em uma classe é indentado, assim como o código na função, loop, instrução if, etc.
- O argumento self em Python se refere 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
- O tempo de execução do Python passará o valor "self" automaticamente quando você chamar um método de instância na instância, quer você o forneça deliberadamente ou não
- Em Python, uma classe pode herdar atributos e métodos de comportamento de outra classe chamada subclasse ou classe herdeiro.