🌟 مقدمة: ما وراء الكائن الواحد!
في الدروس السابقة، تعلمنا كيف ننشئ طالباً واحداً أو مدرباً واحداً. لكن في أكاديمية قياوي، نحن ندير مئات الطلاب! السؤال الاحترافي هو: كيف نجمع هؤلاء الطلاب في مكان واحد ونتعامل معهم بضغطة زر؟ السر يكمن في دمج القوائم (Lists) مع الكائنات (Objects).
🏗️ الفكرة العبقرية: قائمة تحتوي على كائنات
بدلاً من تخزين أرقام أو نصوص في القائمة، سنقوم بتخزين “كائنات كاملة”. هذا يعني أن كل عنصر في القائمة يمتلك (اسمه، عمره، ودواله الخاصة).
💻 مثال عملي (نظام إدارة الأكاديمية):
طبق هذا الكود لترى كيف ندير “فصلاً دراسياً” كاملاً:
class Student:
:def __init__(self, name, grade)
self.name = name
self.grade = grade
:def display(self)
(“{self.grade} : الدرجة | {self.name} : الطالب “f)print
إنشاء قائمة فارغة لتمثيل الفصل# 1
[ ] = qiyaoui_class
إضافة كائنات (طلاب) إلى القائمة # 2
(“ميمون”, 98)) qiyaoui_class.append(Student
(“أحمد”, 85)) qiyaoui_class.append(Student
(“سارة”, 92)) qiyaoui_class.append(Student
معالجة البيانات بذكاء (عرض جميع الطلاب)# 3
(“— لائحة طلاب أكاديمية قياوي —“)print
:for std in qiyaoui_class
!كل عنصر في القائمة هو كائن ينفذ دواله# ( )std.display
البحث الذكي (من هم المتفوقون؟)# 4
(“\n— قائمة المتفوقين (أكثر من 90) —“)print
:for std in qiyaoui_class
: if std.grade >= 90
(“تهانينا للطالب المتفوق: {self.name}”f)print
🔍 لماذا هذا الدرس “مثمر” جداً؟
-
المحاكاة الواقعية: هكذا تعمل قواعد البيانات والأنظمة الكبيرة (مثل قائمة أصدقائك في فيسبوك).
-
القوة والتحكم: يمكنك بـ “حلقة تكرار” (Loop) واحدة أن ترسل رسالة لـ 1000 طالب أو تحسب متوسط درجاتهم.
-
التنظيم الفائق: الكود يصبح نظيفاً جداً؛ البيانات في الكائنات، والإدارة في القوائم.
💡 رسالة تحفيزية من الأستاذ ميمون قياوي:
“تخيل أنك الآن تملك مفاتيح السيطرة على البيانات! البرمجة ليست مجرد كتابة سطور، بل هي القدرة على تنظيم جيش من الكائنات ليؤدي لك مهاماً معقدة في لمح البصر. أنت الآن لم تعد تبرمج، أنت تُهندس حلولاً للمستقبل.”
🧠 الفكرة الأساسية نضع الكائنات داخل قائمة (List) ونتعامل معها بحلقات for
🧱 مثال: صنف Student
:class Student
def__ init__(self, name, level): self.name = name
self.level = level
:def info(self)
print(self.name, "-", self.level)
📦 إنشاء مجموعة من الكائنات
[] = students
((“ميمون”, “مبتدئ”)Student) students.append
((“أحمد”, “متوسط”)Student) students.append
((“سارة”, “متقدم”)Student) students.append
✔️ كل عنصر في القائمة هو كائن كامل
🔁 عرض جميع الكائنات
()for student in students: student.info
📌 نمرّ على القائمة
📌 نستعمل دوال الكائنات
➕ إضافة كائن جديد ديناميكياً
(“اسم الطالب: “)name = input (“المستوى: “)level=input
students.append(Student(name, level))
✔️ هكذا تصبح البرامج تفاعلية وواقعية
🔍 البحث داخل مجموعة كائنات :
:for student in students
“ميمون “==if student.name
(“تم العثور على الطالب”) print
🧠 لماذا هذا الدرس مهم؟ لأن:
كل التطبيقات الحقيقية تعمل بمجموعات
قواعد البيانات تُخزّن كائنات
الألعاب، المواقع، الأنظمة = كائنات كثيرة
📌 هذا الدرس هو جسر نحو المشاريع الكبيرة