Bắt đầu ngayBắt đầu miễn phí

Tự viết một lớp từ con số 0

Bạn là một lập trình viên Python đang viết một gói trực quan hóa. Với bất kỳ phần tử nào trong một biểu đồ, bạn muốn biết vị trí của phần tử, khoảng cách đến các phần tử khác, và dễ dàng thực hiện việc lật ngang hoặc lật dọc.

Phần tử cơ bản nhất của mọi trực quan hóa là một điểm đơn. Trong bài tập này, bạn sẽ tự viết một lớp biểu diễn một điểm trên mặt phẳng từ con số 0.

Bài tập này là một phần của khóa học

Lập trình hướng đối tượng trong Python

Xem khóa học

Hướng dẫn bài tập

Định nghĩa lớp Point có:

  • Hai thuộc tính, xy - tọa độ của điểm trên mặt phẳng;
  • Một constructor nhận hai đối số xy để khởi tạo các thuộc tính tương ứng. Hai đối số này nên có giá trị mặc định là 0.0;
  • Một method distance_to_origin() để trả về khoảng cách từ điểm đến gốc tọa độ. Công thức là \(\sqrt{x^2 + y^2}\).
  • Một method reflect() để phản chiếu điểm qua trục x hoặc trục y:
    • nhận một đối số axis,
    • nếu axis="x", đặt thuộc tính y (không gõ nhầm đâu!) thành giá trị âm của chính y,
    • nếu axis="y", đặt thuộc tính x thành giá trị âm của chính x,
    • với bất kỳ giá trị nào khác của axis, in ra thông báo lỗi. Reflection of a point with respect to y and x axes

Lưu ý: Bạn có thể dùng hàm sqrt() từ numpy hoặc math, nhưng dù chọn gói nào, đừng quên import trước khi bắt đầu định nghĩa lớp!


Để kiểm tra bài làm, bạn nên chạy được đoạn mã sau mà không lỗi:

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

và thu được đầu ra

(-3.0,0.0)
5.0

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Write the class Point as outlined in the instructions
Chỉnh sửa và Chạy Mã