• Conceitos de P.O.O

Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Declarar atribuitos ou campos
  2. Entender o uso do self
  3. Entender acessar/alteração atributos
  4. Entender os atribuitos estáticas

Para definição de atributos que irão guardar informações em nossos objetos, utilizamos os tipos de dados disponíveis pela linguagem Python e também objetos não-nativos.

Sintaxe
class nome_classe:
    nome_atributo = valor
Onde
nome_atributo: Nome do atributo da classe.
valor: valor inicial atribuído ao atributo
Exemplo 1
class classe:
   atributo1 = 0
   
obj = classe() #instancia de classe
Saída
-

O self é uma palavra reservada da linguagem Python que diz que estamos fazendo referência à própria classe. Dessa forma é possível distinguir de qual classe os recursos estamos utilizando. O self será melhor compreendido com a utilização de Python: Herança.

Sintaxe
self.atributo
self.nome_metodo()
Exemplo 2
class classe:
   atributo3 = 999
   
   def metodo(self):
        print(self.atributo3)
        
obj = classe() #classe
obj.metodo()
Saída
999

O encapsulamento de atributos e métodos de nossas classes é feito utilizando o underline(_) como préfixo no nome do atributo de acordo com a tabela de acesso abaixo:

Tab. 1: Encapsulamento
public private protected
atributo __atributo _atributo

Os atributos public são acessados em qualquer classe, os atributos private são acessados apenas na própria classe. O atributo protected será melhor compreendido quando estivermos estudando o tópico sobre Python: Herança.

Exemplo 3
class classe:
    def __init__(): #construtor
        self.atributo1 = 1   #public
        self._atributo2 = 2  #protected
        self.__atributo3 = 3 #private
        
obj = classe() #classe
Saída
-

O método construtor __init__ e self são utilizados para aplicarmos o encapsulamento nos atributos. Mais sobre métodos será visto em Python: Métodos.

O acesso aos atributos é feitas utilizando o operador de acesso a membros (.). A atribuição é feita utilizando o operador de atribuição (=) já estudado.

Sintaxe
nome_objeto.nome_atributo
nome_objeto.nome_atributo = valor
Onde
-
Exemplo 4
class classe:
   atributo3 = 0
   
obj = classe() #classe
obj.atributo3 = 999
print(obj.atributo3)
Saída
999

Em Python, atributos criados em classes são considerador estáticos. Esses irão existir independente de um objeto ser instanciado ou não. Independente de quantos objetos instanciados, todos terão o mesmo atributo estático compartilhado.

Sintaxe
nome_atributo = valor
Exemplo 5
class classe:
   atributo3 = 0
   
obj = classe() # instância 1
obj.atributo3 = 999
print(obj.atributo3)

obj2 = classe() # instância 2
print(obj.atributo3)
Saída
999
999

  1. 19/09/2024 - revisão 1 - Correção em saída Ex. 1, númeração de exemplos, descrição 'Usando self'; ajustes gramaticas; outros ajustes
  2. 19/02/2024 - versão inicial