Leitura recomendada
Objetivos
Atributos
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
Histórico de atualizações
- 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
- 19/02/2024 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.