เขียนคลาสขึ้นมาใหม่ตั้งแต่ต้น
สมมติว่าคุณเป็นนักพัฒนา Python ที่กำลังสร้างแพ็กเกจสำหรับการแสดงผลข้อมูล คุณต้องการรู้ตำแหน่งขององค์ประกอบแต่ละชิ้น ระยะห่างระหว่างองค์ประกอบ และสามารถพลิกแนวนอนหรือแนวตั้งได้อย่างง่ายดาย
องค์ประกอบพื้นฐานที่สุดของการแสดงผลคือจุดเพียงจุดเดียว ในแบบฝึกหัดนี้ จะได้เขียนคลาสสำหรับจุดบนระนาบตั้งแต่ต้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโปรแกรมเชิงวัตถุใน Python
คำแนะนำการฝึกหัด
กำหนดคลาส Point ให้มีองค์ประกอบดังนี้:
- Attribute สองตัวคือ
xและy— เป็นพิกัดของจุดบนระนาบ - Constructor ที่รับอาร์กิวเมนต์สองตัวคือ
xและyเพื่อกำหนดค่า attribute ที่สอดคล้องกัน อาร์กิวเมนต์เหล่านี้ควรมีค่าดีฟอลต์เป็น0.0 - Method
distance_to_origin()ที่ คืนค่า ระยะทางจากจุดไปยังจุดกำเนิด โดยใช้สูตร \(\sqrt{x^2 + y^2}\) - Method
reflect()ที่สะท้อนจุดเทียบกับแกน x หรือแกน y:- รับอาร์กิวเมนต์หนึ่งตัวคือ
axis - ถ้า
axis="x"ให้กำหนด attributey(ไม่ได้พิมพ์ผิด!) ให้เป็นค่าติดลบของ attributey - ถ้า
axis="y"ให้กำหนด attributexให้เป็นค่าติดลบของ attributex - สำหรับค่าอื่น ๆ ของ
axisให้แสดงข้อความแจ้งข้อผิดพลาด
- รับอาร์กิวเมนต์หนึ่งตัวคือ
หมายเหตุ: สามารถเลือกใช้ฟังก์ชัน sqrt() จากแพ็กเกจ numpy หรือ math ก็ได้ แต่ไม่ว่าจะเลือกแพ็กเกจใด อย่าลืม import ก่อนเริ่มนิยามคลาส!
เพื่อตรวจสอบผลลัพธ์ ควรรันโค้ดต่อไปนี้ได้โดยไม่มีข้อผิดพลาด:
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
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Write the class Point as outlined in the instructions