การเพิ่มตรรกะให้กับ Attribute
คลาส Player ที่สร้างไว้ก่อนหน้านี้เป็นจุดเริ่มต้นที่ดี แต่หนึ่งในประโยชน์สำคัญของ class-level attribute คือความสามารถในการจำกัดขอบเขตบนและ/หรือล่างของข้อมูล
ในแบบฝึกหัดนี้ จะได้แก้ไขคลาส Player เพื่อป้องกันไม่ให้ค่า position เกิน MAX_POSITION ที่กำหนดไว้ระดับคลาส
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ
คำแนะนำการฝึกหัด
- กำหนด constructor
__init__()โดยรับ argument สองตัวคือselfและposition - ภายใน constructor ให้ตรวจสอบว่า
positionน้อยกว่าหรือเท่ากับMAX_POSITIONระดับคลาสหรือไม่ ถ้าใช่ ให้กำหนดpositionให้กับself.position - ถ้า
positionมากกว่าMAX_POSITIONระดับคลาส ให้กำหนดself.positionเป็นค่าของ attribute.MAX_POSITIONของคลาสแทน - สร้างออบเจกต์
Playerชื่อpโดยกำหนด position เป็น6แล้วพิมพ์ค่าMAX_POSITIONของออบเจกต์นั้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class Player:
MAX_POSITION = 10
# Define a constructor
____ ____(____, ____):
# Check if position is less than the class-level attribute value
if ____ <= ____.____:
____.____ = ____
# If not, set equal to the class-level attribute
else:
____.____ = ____.____
# Create a Player object, p, and print its MAX_POSITITON
p = ____(____)
print(____.____)