|
|
|
|
Python — Classes
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étodo | Significado |
| __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
|
|
|
|