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 = 0
estamos guardando na variável (atributo)x
desse 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)
. ↩