Saltar para o conteúdo

Python/Conceitos básicos/Classes

Origem: Wikilivros, livros abertos por um mundo aberto.

Criamos o objeto classe com “class nome:”, ela é composta de atributos que representam este objeto. Quando a classe é atribuída a outro objeto, este objeto é chamado de instância da classe. Os métodos, que também são definidos para programação orientada a objetos, são funções dentro de uma classe. Todos os métodos ou atributos da classe são obrigados a passar por parâmetro ou argumento a palavra self antes de tudo, isso é convencionado pelo próprio desenvolvedor, por padrão se chama self, o self foi convencionado nos parâmetros dos métodos e atributos devido a filosofia da linguagem de estar tudo explícito, especificar de onde o valor vem. Assim os métodos são chamados objeto.metodo (argumento1, argumento2, ...) são definidos iguais a uma função.

Os atributos da classe (ou variável da classe) podem ser instanciados em qualquer lugar da classe, e os atributos de instância (ou variável de instância) devem ser declarados dentro dos métodos utilizando o parâmetro self.

class :
   esquerda, direita, valor = None, None, 0

   def __init__(self, valor):
     # construtor dos valores
     self.esquerda = None
     self.direita = None
     self.valor = valor

class Ordenação:
   def __init__(self):
     # inicializa a raiz da árvore
     self.raiz = None

   def AdicionaNo(self, valor):
     return (valor)

   def Inserir(self, raiz, valor):
     # inserir novo valor
     if raiz == None:
         # não há nenhum valor
         return self.AdicionaNo(valor)
     else:
         # já está na árvore
         if valor <= raiz.valor:
            # se os dados forem menores do que os armazenados
            # entra na sub-árvore do lado esquerdo
            raiz.esquerda = self.Inserir (raiz.esquerda, valor)
         else:
            # entra na sub-árvore do lado direito
            raiz.direita = self.Inserir (raiz.direita, valor)
         return raiz

Brincando com instância de classe:

class A:
   a = 1 # atributo publico
   __b = 2 # atributo privado a class A

class B(A):
   __c = 3 # atributo privado
   
   def __init__(self):
     print self.a
     print self.__c

a = A()
print (isinstance(a, B)) # ''Objeto a'' é uma instância da ''classe B''? Falso.

a = B() # Instancía o ''objeto a'' na ''classe B'' e imprime os atributos da classe.
print (isinstance(a, B)) # ''Objeto a'' é uma instância da ''classe B''?Verdadeiro.

b = B() # Instancía o ''objeto b'' na ''classe B'' e imprime os atributos da classe.
print (isinstance(b, B)) # ''Objeto b'' é uma instância da ''classe B''? Verdadeiro.

b = A() # Instancía o ''objeto b'' na ''classe A''.
print (isinstance(b, A)) # ''Objeto b'' é uma instância da ''classe A''? Verdadeiro.