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

فئة البيانات

لديك ضيف يحمل شيئين: الكلمة nora والمقعد 12، ومع ذلك لم تكتب بنفسك أي init لتجهيزه. السطر @dataclass الموضوع فوق Guest هو الذي يبني هذا التجهيز انطلاقًا من الحقول. ولا تُثبَّت أي حزمة، ولا يُنشأ أي مجلد.

ضيف باسم ومقعد

python
from dataclasses import dataclass

@dataclass
class Guest:
    name: str
    seat: int

guest = Guest("nora", 12)
print(guest)

أما الضيف نفسه فما زلت تبنيه بيدك بالسطر Guest("nora", 12): تأتي الكلمة أولًا ثم الرقم، لأن هذا هو ترتيب الحقول. والسطران name: str وseat: int هما الحقلان؛ لا يبنيان ضيفًا ثانيًا ولا ينشئان مجلدًا.

يكفي أن تنفّذ print(guest) لتظهر على الشاشة هذا السطر وحده: Guest(name='nora', seat=12). فلا يوجد سطر ثانٍ، ولا يُضاف badge، ولا تُكتب blue. وسبب علامتي الاقتباس حول nora أنها الكلمة المخزَّنة، أما 12 فعدد صحيح لا فاصلة عشرية فيه، فلا تحيط به علامتا اقتباس. هنا تكتب print السطر، بينما guest.name هو nora وguest.seat هو 12. ولم تكتب أنت str قط؛ فالذي يشكّل هذا السطر المطبوع هو @dataclass. ولو حذفت print لبقيت الشاشة فارغة، لأن بناء الضيف شيء وكتابته على الشاشة شيء آخر.

وإذا تركت المقعد فلن يكمل البرنامج. السطر Guest("nora") ليس موجودًا في البرنامج أصلًا، ولو وُجد لتوقف البرنامج بخطأ اسمه TypeError، لأن حقل seat بلا قيمة. ولن تُكتب None، ولن يواصل البرنامج عمله.

ضيف واحد وحقلان

عند هذا الضيف حقلان فقط، هما name وseat، وكلاهما يعيش في الضيف نفسه؛ فهو ليس داخل كائن آخر، وفئته Guest ليست فئة فرعية من فئة أخرى. لذلك لا تكتب class Guest(Pen)، لأن هذه الصيغة تصنع فئة فرعية، وحقيبة تحمل قلمًا ليست موضوع هذه الصفحة. وفي الصفحة التالية ستتعلم كيف تتتبع الخلل؛ أما هذه الصفحة فتكتفي بحفظ اسم ومقعد وكتابتهما على الشاشة.

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

جاهز للبدء

اختبر معرفتك

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

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

📝 التعليمات

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