الكائنات والكلاسات في بايثون: أساسيات البرمجة كائنية التوجه

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

البرمجة كائنية التوجه في بايثون

البرمجة كائنية التوجه (OOP) هي واحدة من أهم النماذج البرمجية في العصر الحديث. تدعم بايثون هذا النموذج بشكل كامل، مما يجعلها أداة قوية لكل من المطورين المبتدئين والمحترفين.

تساعد البرمجة كائنية التوجه في محاكاة العالم الحقيقي، وتحسين قراءة الكود، وإعادة استخدام المكونات، وإدارة تعقيد المشاريع. المفاهيم الأساسية للبرمجة كائنية التوجه تشمل الكلاسات والكائنات، بالإضافة إلى المبادئ الرئيسية: الوراثة، التغليف، وتعدد الأشكال.

يسمح هذا الأسلوب بتنظيم البرنامج كمجموعة من الكائنات المتفاعلة، كل منها هو نسخة من كلاس معين. وهذا يجعل الكود أكثر نمطية، ووضوحاً، وسهولة في الصيانة.

أساسيات الكلاسات والكائنات في بايثون

تعريف الكلاس والكائن

الكلاس هو قالب أو مخطط لإنشاء الكائنات. يحدد بنية البيانات والطرق (Methods) التي ستكون متاحة لجميع كائنات هذا النوع.

الكائن هو نسخة محددة من الكلاس، ويمتلك بياناته الخاصة ويمكنه تنفيذ الإجراءات المحددة في الكلاس.

class Car:
    def drive(self):
        print("السيارة تحركت")

my_car = Car()  # كائن (نسخة من الكلاس)
my_car.drive()

في الكود أعلاه، يحدد الكلاس Car قالباً لإنشاء كائنات السيارات. الطريقة drive() تصف السلوك المتاح لجميع نسخ هذا الكلاس.

هيكل الكلاس في بايثون

الهيكل الأساسي للكلاس في بايثون يكون كالتالي:

class ClassName:
    def __init__(self, arguments):
        self.properties = values
    
    def method(self):
        actions

المكونات الهامة للكلاس تشمل:

  • init — المُنشئ (Constructor) للكلاس، والذي يتم استدعاؤه تلقائياً عند إنشاء كائن جديد
  • self — معامل خاص يمثل مرجعاً للنسخة الحالية من الكائن
  • الخصائص (Attributes) — متغيرات تخزن بيانات الكائن
  • الطرق (Methods) — دوال معرفة داخل الكلاس ومرتبطة بالكائن

إنشاء واستخدام الكلاسات

مثال عملي لإنشاء كلاس

لننظر إلى إنشاء كلاس Person الذي يمثل شخصاً:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def greet(self):
        print(f"مرحباً، اسمي {self.name}")
    
    def get_info(self):
        return f"الاسم: {self.name}, العمر: {self.age}"

p = Person("آمنة", 30)
p.greet()
print(p.get_info())

في هذا المثال، المُنشئ init يستقبل المعاملين name و age، ويحفظهما كخصائص للنسخة. الطريقتان greet() و get_info() توفران وظائف للتعامل مع بيانات الكائن.

إنشاء نسخ من الكلاس

عملية إنشاء نسخة من الكلاس في بايثون تتم عن طريق استدعاء الكلاس كدالة:

p1 = Person("أحمد", 25)
p2 = Person("مريم", 28)

print(p1.name)  # أحمد
print(p1.age)   # 25
print(p2.name)  # مريم

كل استدعاء للمُنشئ ينشئ كائناً جديداً مستقلاً بخصائصه وحالته الخاصة.

الخصائص في كلاسات بايثون

خصائص النسخة (Instance Attributes)

خصائص النسخة فريدة لكل كائن. يتم إنشاؤها وتهيئتها في الطريقة init ويمكن تغييرها أثناء تشغيل البرنامج:

class Student:
    def __init__(self, name, grade):
        self.name = name
        self.grade = grade
    
    def update_grade(self, new_grade):
        self.grade = new_grade

المدونات

توصيات الكتب