ComeçarComece gratuitamente

Escreva uma classe do zero

You are a Python developer writing a visualization package. For any element in a visualization, you want to be able to tell the position of the element, how far it is from other elements, and easily implement horizontal or vertical flip .

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 de 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 retorna 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 com 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!) como o valor negativo do atributo y,

    • se axis="y", ele define o atributo x como o valor negativo do atributo x,

    • para qualquer outro valor de axis, imprime 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 preenchendo este código de exemplo.

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