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
Hướng dẫn bài tập
Định nghĩa lớp Point có:
- Hai thuộc tính,
xvày- tọa độ của điểm trên mặt phẳng; - Một constructor nhận hai đối số
xvàyđể 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ínhy(không gõ nhầm đâu!) thành giá trị âm của chínhy, - nếu
axis="y", đặt thuộc tínhxthành giá trị âm của chínhx, - với bất kỳ giá trị nào khác của
axis, in ra thông báo lỗi.
- nhận một đối số
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