محتويات الجدول
- مقدمة في البرمجة الشيئية (OOP)
- أُطر و كائنات بايثون: لبنات بناء البرمجة الشيئية
- المنشئ: تهيئة الكائنات الخاصة بك
- إدارة سمات الفئة: الإضافة والوصول والحذف
- مثال شامل: فئة حيوان أليف
مقدمة في البرمجة الشيئية (OOP)
البرمجة الشيئية (OOP) هي نموذج برمجة قوي ينظم الكود حول “الكائنات” بدلاً من الدوال والمنطق. هذه الكائنات تغلف البيانات (السمات) والوظائف (الأساليب) التي تعمل على تلك البيانات. هذا النهج يعزز الوحدات النمطية وإعادة الاستخدام والصيانة. تشمل المبادئ الرئيسية للبرمجة الشيئية:
- التجريد: تبسيط الأنظمة المعقدة من خلال نمذجة المعلومات الأساسية فقط.
- التغليف: تجميع البيانات والأساليب داخل فئة، وحماية سلامة البيانات وإخفاء تفاصيل التنفيذ الداخلية.
- الميراث: إنشاء فئات جديدة (فئات فرعية) بناءً على فئات موجودة (فئات رئيسية)، ووراثة السمات والأساليب.
- التعدد الشكلي: السماح لكائنات من فئات مختلفة بالاستجابة لنفس دعوة الأسلوب بطريقتها الخاصة.
بايثون، كلغة موجهة للكائنات، تسمح لك باستغلال هذه المبادئ لبناء تطبيقات قوية ومنظمة بشكل جيد. حتى الأنواع المدمجة مثل السلاسل النصية والأعداد الصحيحة هي كائنات في بايثون.
أُطر و كائنات بايثون: لبنات بناء البرمجة الشيئية
الفئة تعمل كنموذج أولي لإنشاء الكائنات. تحدد السمات (البيانات) والأساليب (السلوك) التي ستمتلكها كائنات تلك الفئة. الكائن هو مثيل لفئة – تحقيق ملموس للنموذج الأولي.
دعونا نوضح ذلك بمثال بسيط:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
my_dog = Dog("Buddy", "Golden Retriever")
print(my_dog.name) # الوصول إلى سمة 'name'
my_dog.bark() # استدعاء أسلوب 'bark'
المنشئ: تهيئة الكائنات الخاصة بك
طريقة __init__
، المعروفة أيضًا باسم المنشئ، هي طريقة خاصة يتم استدعاؤها تلقائيًا عند إنشاء كائن جديد. تُستخدم لتهيئة سمات الكائن بقيم أولية.
class Cat:
def __init__(self, name="Whiskers", color="Grey", age=2):
self.name = name
self.color = color
self.age = age
def meow(self):
print("Meow!")
my_cat = Cat() # استخدام القيم الافتراضية
print(my_cat.name, my_cat.color, my_cat.age)
another_cat = Cat("Mittens", "Orange", 5) # تجاوز القيم الافتراضية
print(another_cat.name, another_cat.color, another_cat.age)
إدارة سمات الفئة: الإضافة والوصول والحذف
يمكنك إضافة سمات الكائن والوصول إليها وحذفها بعد إنشائها.
my_dog = Dog("Buddy", "Golden Retriever")
print(my_dog.name) # الإخراج: Buddy
my_dog.age = 3 # إضافة سمة جديدة
print(my_dog.age) # الإخراج: 3
del my_dog.breed # حذف سمة
#print(my_dog.breed) # هذا سيؤدي إلى خطأ AttributeError
print(hasattr(my_dog, 'breed')) # الإخراج: False - للتحقق مما إذا كانت السمة موجودة.
مثال شامل: فئة حيوان أليف
دعونا ننشئ مثالًا أكثر تعقيدًا يُظهر الميراث والتعدد الشكلي:
class Pet:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print("Generic pet sound")
class Dog(Pet):
def speak(self):
print("Woof!")
class Cat(Pet):
def speak(self):
print("Meow!")
my_dog = Dog("Fido", 5)
my_cat = Cat("Whiskers", 2)
my_dog.speak() # الإخراج: Woof!
my_cat.speak() # الإخراج: Meow!
يُظهر هذا المثال كيف يسمح الميراث بإنشاء فئات متخصصة (Dog، Cat) من فئة أكثر عمومية (Pet)، والتعدد الشكلي يسمح لها بالاستجابة بشكل مختلف لنفس الأسلوب (speak
).