IST - Física HowTo - Informática 11:01
2025-12-22
  Programação
 
     Python
 
        Módulos
 
        Tipos e operações
 
        Classes
 
        Strings
 
        Listas
 
        Tuples
 
        Dictionaries
 
        Ciclos e condições
 
        Instr. compostas
 
        Leitura e escrita
 
        Números aleatórios
 

Python — Classes

Sumário
1. Introdução
2. Como se constrói uma classe
3. Métodos associados a operações algébricas elementares
4. Métodos lógicos
5. Método "__repr__"
6. Método "__str__"
7. Links úteis
Início

1. Introdução

Em geral, em programação, um classe é um tipo abstracto de dados que permite definir objectos.
Ela é constituída por um conjunto de valores que caracterizam o seu estado em cada momento e um conjunto de funções (métodos) que caracterizam as suas propriedades.
Na definição de uma classe deve existir sempre uma ou mais funções construtoras (para criarem os objectos), variáveis internas e funções (métodos) que acedem e manipularam essas variáveis.
As classes podem ser construídas a partir de outras classes, pelo que, herdam os seus métodos e variáveis que podem ser alterados (substituindo os anterior) ou não.
Início

2. Como se constrói uma classe

Quando se constrói uma classe a primeira coisa a fazer é dar-lhe um nome e, eventualmente, indicar se ela herda os atributos de outra classe. A sua criação é feita com a palavra chave class:
class nome_da_class:
class nome_da_class (nome_da_classe_mãe):
Em seguida, podem definir as variáveis ​​de classe que são partilhadas por todas as instâncias da classe. Exemplo:
factor = 4
Note-se que a sua alteração, irá afectar todas as instâncias dessa classe.
Depois, define-se a função a construtora, "__init__":
def __init__ (self, argumentos):
... código ...
"self" vai estar presente em todas as funções (métodos) da classe e funciona como uma referência ao objecto criado.
As variáveis definidas nesta função são definidas no momento em que se cria uma instância e são partilhadas pelos métodos apenas nessa instância.
Em seguida definem-se os diferentes métodos associados à classe que se está a definir. Exemplo:
def foo (self, argumentos):
... código ...
Apesar do "Python" dispor de eliminação de objectos já não referenciados (garbage collected), podem definir-se funções que permitem destruir os objectos criados (destruidores) que são designadas por "__del__":
def __del__ (self):
... código ...
No caso, de haver uma classe mãe, a classe actual herda todas as suas variáveis e métodos e apenas têm de ser refeitos aqueles que são alterados.
Uma vez criada uma classe, para se criarem objectos com os seus atribuitos (instâncias) faz-se simplesmente:
obj = nome_da_class (argumentos)
Os atributos e métodos começados por "_" são internos à classe.
Início

3. Métodos associados a operações algébricas elementares

Associados à sobrecarga das operações algébricas elementares temos os métodos:
MétodoSignificado
__add__Soma (a1 + a1)
__sub__Subtração (a1 - a2)
__mul__Multiplicação (a1 * a2)
__truediv__Divisão (a1 / a2)

que se definem como
def __oper__ (self, objecto):
... código ...
em que "__oper__" é um dos métodos acima indicados.
A sua utilização é feita como qualquer outra operação matemática:
obj1 = nome_da_class(argumentos)
obj2 = nome_da_class(argumentos)
obj3 = obj1 operação obj2
e em que operação é o respectivo operador matemático. Exemplo:
a3 = a1 + a2
Início

4. Métodos lógicos

O método "__eq__" permite verificar se existe uma igualdade entre dois objectos:
def __eq__ (self, objecto):
... código ...
Os métodos "__lt__" (menor do que) e "__gt__" (maior do que) funcionam de um modo idêntico.
Para os utilizar:
obj1 = nome_da_class(argumentos)
obj2 = nome_da_class(argumentos)
obj1 == obj2
obj1 > obj2
obj1 < obj2
Início

5. Método "__repr__"

O método "__repr__" permite criar uma representação em string da instância da classe. O Python utiliza esta representação quando se escreve aquela o nome da instância
def __repr__ (self):
... código ...
Para a utilizar:
obj = nome_da_class(argumentos)
obj
Início

6. Método "__str__"

O método "__str__" permite criar uma representação em string da instância da classe. O Python utiliza esta representação para a imprimir ou converter em string. Exemplo:
def __str__ (self, argumentos):
... código ...
Para a utilizar:
obj = nome_da_class(argumentos)
print(obj)
Início

7. Links úteis

Início