การเปลี่ยนค่า class attribute
คุณได้เรียนรู้วิธีกำหนด class attribute และวิธีเข้าถึงจาก instance ของคลาสไปแล้ว แล้วจะเกิดอะไรขึ้นถ้าลองกำหนดค่าใหม่ให้กับ class attribute ผ่าน instance?
คลาส Player จากแบบฝึกหัดก่อนหน้าถูกกำหนดไว้แล้ว ดังนี้:
class Player:
MAX_POSITION = 10
def __init__(self, position):
if position <= Player.MAX_POSITION:
self.position = position
else:
self.position = Player.MAX_POSITION
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ
คำแนะนำการฝึกหัด
- สร้างออบเจกต์
Playerสองตัว คือp1และp2โดยกำหนดตำแหน่งเป็น9และ5ตามลำดับ - พิมพ์ค่า
p1.MAX_POSITIONและp2.MAX_POSITION - กำหนดค่า
7ให้กับp1.MAX_POSITION - พิมพ์ค่า
p1.MAX_POSITIONและp2.MAX_POSITIONอีกครั้ง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create Players p1 and p2
p1 = ____
p2 = ____
print("MAX_POSITION of p1 and p2 before assignment:")
# Print p1.MAX_POSITION and p2.MAX_POSITION
____
____
# Assign 7 to p1.MAX_POSITION
____
print("MAX_POSITION of p1 and p2 after assignment:")
# Print p1.MAX_POSITION and p2.MAX_POSITION
____
____