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
Instruções de exercício
Defina a classe Point
que possui:
Dois atributos,
x
ey
; as coordenadas do ponto no plano;Um construtor que aceita dois argumentos,
x
ey
, que inicializam os atributos correspondentes. Esses argumentos devem ter o valor padrão de0.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 atributoy
(não é um erro de digitação!) como o valor negativo do atributoy
,se
axis="y"
, ele define o atributox
como o valor negativo do atributox
,para qualquer outro valor de
axis
, imprime uma mensagem de erro.
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