مقدمة
في الدرس السابق تعرفنا على مدير السياق (Context Manager)، وكيف يساعدنا على إدارة الموارد بطريقة منظمة باستخدام with.
في هذا الدرس سنبدأ موضوعًا مهمًا جدًا في Python وهو البرمجة كائنية التوجه (Object-Oriented Programming - OOP).
تسمح لنا OOP بتنظيم البرامج باستخدام الفئات (Classes) والكائنات (Objects).
ما هي البرمجة كائنية التوجه؟
البرمجة كائنية التوجه هي أسلوب لتنظيم البرامج حول الكائنات التي تحتوي على بيانات ووظائف مرتبطة بها.
فبدلًا من التعامل مع البيانات والوظائف بشكل منفصل، يمكن جمعها داخل كائن واحد يمثل شيئًا معينًا في البرنامج.
ما هي الفئة (Class)؟
الفئة هي بمثابة مخطط أو قالب نستخدمه لإنشاء الكائنات.
يمكن أن تحتوي الفئة على:
بيانات
خصائص
دوال
سلوكيات
والفئة نفسها تمثل التصميم الذي يمكن إنشاء الكائنات بناءً عليه.
ما هو الكائن (Object)؟
الكائن هو نسخة يتم إنشاؤها من الفئة.
يمكن إنشاء عدة كائنات من الفئة نفسها، وكل كائن يمكن أن يمتلك بيانات مختلفة عن الآخر.
وهذا يسمح بتمثيل أشياء متعددة باستخدام تصميم واحد.
الخصائص (Attributes)
الخصائص هي البيانات المرتبطة بالكائن.
فمثلًا يمكن أن يحتوي كائن معين على خصائص تصف حالته أو معلوماته.
وتختلف قيم الخصائص من كائن إلى آخر حسب البيانات التي يمتلكها.
الدوال داخل الفئات (Methods)
يمكن للفئة أن تحتوي على دوال تسمى Methods.
تمثل هذه الدوال السلوك أو العمليات التي يستطيع الكائن تنفيذها.
وبذلك يمكن جمع البيانات والوظائف المتعلقة بها داخل كائن واحد.
__init__()
توفر Python دالة خاصة تسمى __init__()، وتستخدم عادةً لتهيئة الكائن عند إنشائه.
يمكن من خلالها إعطاء الكائن القيم الأولية التي يحتاج إليها.
self
تستخدم Python الكلمة self للإشارة إلى الكائن الحالي.
ومن خلالها يمكن الوصول إلى خصائص ودوال الكائن من داخل الفئة.
لماذا نستخدم OOP؟
تساعد البرمجة كائنية التوجه على:
تنظيم المشاريع الكبيرة
تقسيم البرنامج إلى أجزاء واضحة
إعادة استخدام الكود
تمثيل الأشياء والعلاقات بينها
تسهيل تطوير وصيانة البرامج
OOP في المشاريع
تستخدم البرمجة كائنية التوجه في العديد من أنواع المشاريع، مثل:
الألعاب
تطبيقات سطح المكتب
تطبيقات الويب
الأنظمة الإدارية
الذكاء الاصطناعي
المشاريع البرمجية الكبيرة
أخطاء شائعة عند المبتدئين
من الأخطاء الشائعة:
الخلط بين الفئة والكائن
اعتبار self متغيرًا عاديًا
وضع كل شيء داخل فئة دون حاجة
عدم فهم العلاقة بين الخصائص والدوال
استخدام OOP دون فهم الهدف منها
لذلك من الأفضل فهم الفئات والكائنات جيدًا قبل الانتقال إلى الوراثة والتعددية والتجريد.
ملخص الدرس
تعرفنا في هذا الدرس على البرمجة كائنية التوجه (OOP) في Python، وعرفنا الفرق بين الفئات والكائنات، وتعرفنا على الخصائص والدوال و__init__() وself.
في الدرس الخامس والثلاثون سنتعرف على الوراثة (Inheritance) في Python، وسنفهم كيف يمكن لفئة أن تستفيد من خصائص ودوال فئة أخرى.



