Python Tutorial - Classe

  1. Introdução à OOP
  2. Classes e objetos Python
  3. Construtores de Classe Python
  4. Apagar atributos da classe

Vamos falar sobre o básico da programação Python orientada a objetos (OOP) como classe, objeto nesta seção.

Python é uma linguagem de programação orientada a objetos, em outras palavras, tudo em Python é um objeto.

Introdução à OOP

O conceito básico da Programação Orientada a Objectos (OOP) consiste nas seguintes terminologias:

  1. Classes
  2. Membros dos dados
  3. Métodos
  4. Objetos
  5. Construtores
  6. Sobrecarga do método
  7. Sobrecarga do operador
  8. Herança
  9. Instâncias de Classe e Instanciação

Classes e objetos Python

Uma classe pode ser pensada como um esboço para um objeto enquanto, um objeto é uma coleção de membros de dados e a função de membro.

Uma classe contém membros de dados (variáveis) e funções de membros (métodos) que podem ser acessados usando os objetos dessa classe.

Criar uma classe

Uma classe é criada utilizando a palavra-chave classe e depois o nome da classe:

A sintaxe é a seguinte:

class NameofClass:
    #data members of the class
    #member functions of the class

Exemplo:

>>> class Waiter:
	name = "Andrew"
	def display():
		print('Waiter Class')	
>>> print(Waiter.display)
<function Waiter.display at 0x0359E270>
>>> print(Waiter.name)
Andrew

Este exemplo cria uma classe chamada Waiter que contém um membro de dados nome e um método de membro display().

Cria uma instância de objeto de uma classe

Uma instância de objeto pode ser criada usando a seguinte sintaxe:

obj = className()

Exemplo:

>>> w = Waiter()
>>> print(w.name)
Andrew
>>> w.display()
Waiter Class

Você pode ver aqui que o objeto da classe Waiter é utilizado para acessar os membros (atributos) da classe, utilizando o operador de pontos.

Atributos da classe

Juntamente com os membros de dados e funções de membros, há alguns atributos embutidos de uma classe Python.

  1. __dict__: é um dicionário que contém o namespace da classe.
  2. __doc__: é a string de documentação da classe
  3. __name__: é o nome da classe
  4. __module__: é o módulo no qual a classe é definida.
  5. __bases__: é um tuple que contém a classe base.

Estes atributos podem ser acessados utilizando o operador de pontos.

Exemplo:

>>> class Waiter:
	"This is a waiter class"
	name="Andrew"
	def display():
		print("You are in waiter class")
>>> w = Waiter()

>>> print(w.__doc__)
This is a waiter class

>>> print(w.__dict__)
{}

>>> print(w.__module__)
__main__

Construtores de Classe Python

Um construtor em Python OOP é criado utilizando __init__(). Este método incorporado é um método especial chamado quando um objeto da classe correspondente é criado.

Construtores são utilizados para inicializar os membros de dados da classe.

>>> class Waiter:
        def __init__(self, n):
            self.name=n
            self.age=20
        def display(self):
            print(self.name)

>>> w=Waiter('Rob')
>>> w.display()
Rob

Aqui, o argumento self é utilizado na definição do construtor e também em todos os métodos de classe. Portanto, quando você chama uma função como w.display(), ela é interpretada como Waiter.display(w).

Apagar atributos da classe

Você pode utilizar a instrução del para excluir os atributos e objetos de uma classe.

>>> w=Waiter('Rob')
>>> w.__dict__
{'name': 'Rob', 'age': 20}
>>> del w.age
>>> w.__dict__
{'name': 'Rob'}