เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเปลี่ยนค่า 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
____
____
แก้ไขและรันโค้ด