หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ
คลาสขั้นสูง
การสืบทอดวัตถุ
ในบทนี้ เราจะสำรวจวิธีการใช้งานคลาสให้เกิดประโยชน์สูงสุด โดยเรียนรู้เทคนิคต่าง ๆ และฟังก์ชันเฉพาะของคลาสที่สามารถขยายความสามารถของวัตถุใน Python.
ในระดับนี้ เราจะเรียนรู้เกี่ยวกับคุณสมบัติที่โดดเด่นของการขยายคลาส อย่างการสืบทอดวัตถุ (object inheritance) คุณสมบัตินี้ช่วยให้เราสามารถสร้างคลาสที่ได้รับฟังก์ชันจากคลาสอื่น ทำให้เราสามารถสร้างวัตถุที่มีความยืดหยุ่นมากขึ้น ในขณะที่ยังคงรักษาชุดคุณสมบัติหลักไว้

วัตถุประสงค์
เติมและเก็บรวบรวมขวดไวน์โดยใช้การสืบทอดของอ็อบเจ็กต์ในคลาสของคุณ
ห้องนี้ใช้สำหรับเติมเต็มขวดไวน์ มีเพียงไม่กี่ขวดที่ยังต้องใส่ขวดและบรรจุภัณฑ์ ซึ่งสามารถทำได้อย่างดีที่สุดโดยการใช้คลาสต่างๆ คลาสจะช่วยให้คุณสร้างอ็อบเจ็กต์ที่มีคุณสมบัติหลายอย่างได้ ในกรณีนี้เป็นขวดไวน์ชนิดต่างๆ อ็อบเจ็กต์ที่สร้างโดยใช้คลาสสามารถสืบทอดคุณสมบัติจากคลาสอื่น ๆ ซึ่งถูกเรียกว่า child ในขณะที่คลาสที่ใช้เป็นฐานในการสร้างคลาสเพิ่มเติมเรียกว่า parent
# Parent Class
class wine_bottle:
color = ""
def set_bottle(self):
player.place("empty bottle")
# Child Class
class fill_bottle(wine_bottle):
def fill_bottle(self):
player.combine(["empty bottle", self.color + " wine"])
player.speak("The bottle's color is: %s" % self.color)
player.collect(self.color + "bottle")
มีคลาสสอง (2) คลาสที่ถูกตั้งค่าไว้สำหรับการใช้งาน โดยคลาส parent จะใช้สำหรับวางขวดต่อหน้าหลังถังเพื่อทำการเติมเต็ม ส่วนคลาส child ใช้สำหรับรวมและตั้งค่าขวดไวน์ คลาส child สืบทอดคุณสมบัติจากคลาส parent ทำให้คุณสามารถสร้างความแตกต่างของขวดได้โดยไม่ต้องใช้ความพยายามมากนัก
เริ่มต้นโดยเดินและเก็บขวดเปล่าทั้งสี่ (4) ขวดที่อยู่บนแผนที่ เมื่อคุณได้ขวดเหล่านั้นแล้ว ให้เดินไปที่เครื่องหมาย X สีเข้มบนพรมสีต่างๆ และเผชิญหน้ากับตัวจ่ายถัง มีพรมสีต่างๆ ทั้งหมดสี่ (4) พรม ซึ่งแทนสีของไวน์ที่คุณต้องการสร้างในพื้นที่นั้น ได้แก่: "green" , "blue" , "purple" และ "yellow"
ที่เครื่องหมาย X สีเข้ม ให้สร้างอ็อบเจ็กต์โดยใช้คลาส child ตัวอย่างเช่น: green_bottle = fill_bottle(). ตั้งชื่ออ็อบเจ็กต์ตามขวดที่คุณต้องการสร้าง เมื่อสร้างเสร็จแล้ว ให้ตั้งค่าสีของอ็อบเจ็กต์และเปิดใช้งานฟังก์ชันของมัน
# Green bottle setup green_bottle.color = "green" green_bottle.set_bottle() green_bottle.fill_bottle()
ทำเช่นนี้สำหรับขวดไวน์ทั้งหมดสี่ (4) ขวดที่อยู่บนเครื่องหมาย X ของแต่ละขวด เมื่อทุกขวดถูกตั้งค่าและเก็บรวบรวมเรียบร้อยแล้ว ให้เดินไปที่เครื่องหมาย X สีอ่อนแล้วเปิดประตูไปยังห้องไวน์โดยใช้ฟังก์ชัน open() แบบนี้: player.open(). จากนั้นเดินไปที่เครื่องหมาย X สีทองเพื่อเก็บรวบรวมขวดที่คุณสร้างไว้ในชั้นวางไวน์
นำขวดทั้งหมดใส่ในลิสต์ที่ชื่อว่า bottles และเมื่อหันหน้าไปทางชั้นวางไวน์ ให้ใช้ฟังก์ชัน place() เพื่อเก็บรักษาลิสต์เพื่อทำให้ด่านนี้เสร็จสมบูรณ์ คุณจะได้เก็บขวดทั้งหมดสี่ (4) ขวด ได้แก่: "green bottle" , "blue bottle" , "purple bottle" และ "yellow bottle" .