ComeçarComece de graça

Escreva uma classe do zero

Você é um desenvolvedor Python criando um pacote de visualização. Para qualquer elemento em uma visualização, você quer poder dizer a posição do elemento, a distância dele em relação a outros elementos e facilmente fazer uma inversão horizontal ou vertical.

O elemento mais básico de qualquer visualização é um único ponto. Neste exercício, você escreverá do zero uma classe para um ponto em um plano.

Este exercício faz parte do curso

Programação orientada a objetos em Python

Ver curso

Instruções do exercício

Defina a classe Point que possui:

  • Dois atributos, x e y - as coordenadas do ponto no plano;
  • Um construtor que aceita dois argumentos, x e y, que inicializam os atributos correspondentes. Esses argumentos devem ter o valor padrão de 0.0;
  • Um método distance_to_origin() que mostra a distância do ponto até a origem. A fórmula para isso é \(\sqrt{x^2 + y^2}\).
  • Um método reflect(), que reflete o ponto em relação ao eixo x ou y:
    • aceita um argumento axis,
    • se axis="x", ele define o atributo y (não é um erro de digitação!) para o valor negativo do atributo y,
    • se axis="y", define o atributo x como o valor negativo do atributo x,
    • para qualquer outro valor de axis, mostra uma mensagem de erro. Reflexão de um ponto em relação aos eixos y e x

Observação: Você pode optar por usar a função sqrt() do pacote numpy ou math, mas, seja qual for o pacote escolhido, não se esqueça de importá-lo antes de iniciar a definição da classe!


Para verificar seu trabalho, você deve ser capaz de executar o código a seguir sem erros:

pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())

e retornar a saída

(-3.0,0.0)
5.0

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Write the class Point as outlined in the instructions
Editar e executar o código