دورة تطوير بايثون المتقدمة
الفصل
>
المستوى
الفصول المتقدمة
وراثة الكائنات
في هذا الفصل سوف نستكشف كيفية تحقيق أقصى استفادة من الفئات، ونتعلم تقنيات متعددة ووظائف خاصة بالفئات يمكنها توسيع قدرات الكائنات في لغة بايثون.
في هذه المرحلة سوف نتعرف على واحدة من أبرز الميزات الموسعة للفئات، وهي وراثة الكائنات. تتيح لنا هذه الميزة إنشاء فئة ترث وظائفها من فئة أخرى، مما يسمح لنا بإنشاء كائنات أكثر ديناميكية مع الحفاظ على مجموعة أساسية من الخصائص.

الهدف
قم بملء وتخزين زجاجات النبيذ باستخدام وراثة الكائنات في الأصناف الخاصة بك.
تُستخدم هذه الغرفة لملء زجاجات النبيذ، وهناك عدد قليل منها لا يزال بحاجة للتعبئة والتغليف. يتم تحقيق ذلك بشكل أفضل باستخدام الأصناف. تتيح لك الأصناف إنشاء كائنات يمكنها امتلاك سمات مختلفة، في هذه الحالة أنواع مختلفة من زجاجات النبيذ. الكائنات التي يتم إنشاؤها باستخدام الأصناف يمكنها توريث السمات من أصناف أخرى، وتسمى هذه الأصناف الفرعية بينما تُستخدم الأصناف كأساس لإنشاء أصناف أخرى وتسمى الأصلية.
# 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) معدان للاستخدام، حيث يُستخدم الصنف الأصلي لوضع الزجاجة أمام برميل ليتم تعبئتها، بينما يُستخدم الصنف الفرعي لدمج وتعيين زجاجة النبيذ. يرث الصنف الفرعي الخصائص من الصنف الأصلي مما يسمح لك بإنشاء اختلافات في الزجاجات دون جهد كبير.
أولاً، قم بالمشي وجمع الزجاجات الفارغة الأربعة (4) في أعلى الخريطة. بمجرد الحصول عليها، اتجه إلى العلامات X الداكنة الموجودة على السجاد الملون وواجه موزعات البراميل. هناك أربع سجادات ملونة، تمثل لون النبيذ الذي تحتاج إلى إنتاجه في تلك المنطقة، وهي: "green" , "blue" , "purple" و "yellow" .
عند العلامات X الداكنة، أنشئ كائنًا باستخدام الصنف الفرعي، على سبيل المثال: 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" .