جاري التحميل...

التوابع داخل الفئة

التابع مهمة تخصّ مصباحًا واحدًا. السطر lamp.label() يشغّل تلك المهمة ويعيد لك العبارة glow blue. الأقواس جزء من التشغيل، ومن دونها لم تُنفَّذ المهمة، وما تراه على الشاشة ليس glow blue. التابع label يستخدم الكلمة المخزّنة أصلًا في ذلك المصباح. هو لا يثبّت حزمة ولا ينشئ مجلدًا. الأسطر المزاحة تحت label هي المهمة نفسها. return يعيد العبارة، لكنه لا يكتبها على الشاشة بنفسه.

مصباح واحد ينفّذ مهمة

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color
lamp = Lamp("blue")
print(lamp.label())

تعرض الشاشة glow blue، وبين glow وblue مسافة. بنى label هذه العبارة من اللون المخزّن وأعادها. print هو الذي يكتبها. لو غاب سطر print لظلّ التابع يعيد العبارة وبقيت الشاشة فارغة. lamp.color ما زالت الكلمة المخزّنة blue، أما lamp.label() فهي المهمة التي تضع glow أمامها. القراءتان ليستا شيئًا واحدًا.

مصباحان وتسميتان

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color
one = Lamp("blue")
two = Lamp("red")
print(one.label())
print(two.label())

على الشاشة سطران: الأول glow blue والثاني glow red. one وtwo مصباحان. كل label يقرأ الكلمة المخزّنة في مصباحه فقط. بناء مصباح red لا يغيّر مصباح blue، فيبقى one.label() يعطيك glow blue. Lamp ما زالت القالب، وone وtwo هما الكائنان. المهمة واحدة، والكلمة المخزّنة تختلف في كل مرة.

Lamp.label() من دون مصباح ليست في أيٍّ من البرنامجين. القالب نفسه لا يحمل لونًا مخزّنًا، والمهمة تحتاج إلى مصباح تقرأ منه. يتوقف البرنامج عند هذا السطر، واسم الخطأ TypeError. لا تُكتب None ولا يكمل البرنامج. أنشئ مصباحًا أولًا، ثم اكتب الأقواس عليه.

الصفحة التالية عن الوراثة. في هذه الصفحة تشغّل مهمة واحدة فقط على مصباح، ثم ترى أن المصباح الثاني يحتفظ بكلماته الخاصة.

مهمة على المصباح

lamp.label() يعرض glow blue. print يكتب العبارة، أما التابع فيعيدها فقط. يمكن لمصباح ثانٍ أن يعرض glow red دون أن يغيّر الأول. Lamp.label() من دون مصباح يتوقف بـ TypeError. الصفحة التالية عن الوراثة.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
6
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى