Classes
Implementando o construtor
Exercício 1
Exercício 2
Resposta
Perceba que os valores para self.x e self.y não são mais definidos como o valor 0. Trocamos os 0`s pelos argumentos x_coord e x_coord.
A função __init__ é um tipo de função especial que é chamada quando o novo ponto é criado. Duas observações importantes:
- São dois underscores no começo e dois underscores no fim (chamamos esse par de dois underscores de dunder, ou double underscore);
- Essas funções que fazem parte de uma classe sempre recebem um primeiro argumento chamado
self. Ele é uma variável que guarda o próprio objeto1. No nosso exemplo,selfé o próprio ponto. Por isso, quando fazemosself.x = 0estamos guardando na variável (atributo)xdesse ponto específico o valor0.
Talvez você tenha notado que ao criar um ponto com o código ponto = Point(4, 1) não passamos o argumento self.

Como o self é uma referência ao próprio ponto, então não precisamos passar ele quando estamos criando o ponto.
Para entender melhor o que está acontecendo no código que acabamos de testar, veja o teste de mesa abaixo:

Por enquanto, as classes só parecem um jeito muito mais complicado de guardar dados. Vamos começar a adicionar algumas funcionalidades associadas a esses dados.
-
Um objeto é uma ocorrência/instância de uma classe. No nosso exemplo, é o que é devolvido quando chamamos
Point(4, 1). ↩