Classes
Implementando métodos
Vamos ver um exemplo de uma função definida dentro da classe (também chamada de método):
class Point:
def __init__(self, x_coord, y_coord):
self.x = x_coord
self.y = y_coord
def distance_to(self, other_point):
dx = other_point.x - self.x
dy = other_point.y - self.y
return ((dx**2) + (dy**2)) ** 0.5
Exercício 1
Resposta
O método distance_to recebe dois pontos como argumento. O primeiro ponto é o self e o segundo argumento é other_point.
Exercício 2
Resposta
Note que a forma como chamamos o método distance_to é um pouco diferente de como chamamos funções normalmente. Estamos chamando o método distance_to associado à variável p1 com o argumento p2.
Exercício 3
Resposta
Os valores para other_point.x e self.x são 7, 4.

Veja o teste de mesa abaixo, que simula o código do exercício anterior:

Considere o comando na penúltima linha: d = p1.distance_to(p2). Ele segue uma estrutura muito parecida com o que já fazíamos com strings, por exemplo:
Provavelmente ainda não está muito claro qual é a vantagem de usarmos classes. Vamos praticar resolvendo alguns exercícios. No handout de Pygame veremos alguns exemplos mais úteis do uso de classes.
Uma sugestão de sequência de exercícios para praticar:
Exercício 4
Exercício 5
Exercício 6