1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python의 객체 지향 프로그래밍

Connected

演習

처음부터 클래스를 직접 만들어 보기

여러분은 시각화 패키지를 만드는 Python 개발자입니다. 시각화의 어떤 요소든 위치를 알 수 있고, 다른 요소들과의 거리를 계산하며, 가로 또는 세로로 손쉽게 뒤집을 수 있어야 합니다.

가장 기본적인 시각화 요소는 단일 점입니다. 이 연습 문제에서는 평면 위의 점을 나타내는 클래스를 처음부터 작성해 보겠습니다.

指示

100 XP

다음과 같은 특징을 가진 Point 클래스를 정의하세요:

  • 두 개의 속성 x와 y — 평면에서 점의 좌표입니다.
  • 생성자 — x와 y 두 인자를 받아 해당 속성을 초기화합니다. 이 인자들의 기본값은 0.0이어야 합니다.
  • 메서드 distance_to_origin() — 점에서 원점까지의 거리를 반환합니다. 공식은 \(\sqrt{x^2 + y^2}\) 입니다.
  • 메서드 reflect() — 점을 x축 또는 y축에 대해 대칭 이동합니다:
    • 인자 axis 하나를 받습니다.
    • axis="x"이면 y 속성 값을 음수로 바꿉니다(오타가 아닙니다!).
    • axis="y"이면 x 속성 값을 음수로 바꿉니다.
    • 그 외의 axis 값이면 오류 메시지를 출력합니다. Reflection of a point with respect to y and x axes

참고: sqrt() 함수는 numpy 또는 math 패키지 중 하나를 사용해도 됩니다. 다만 어떤 패키지를 선택하든, 클래스 정의를 시작하기 전에 반드시 임포트하세요!


작성한 코드를 확인하려면, 아래 코드를 오류 없이 실행할 수 있어야 합니다:

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

그리고 다음과 같은 출력을 얻어야 합니다.

(-3.0,0.0)
5.0