البرمجة كائنية التوجه في بايثون
تعتبر البرمجة كائنية التوجه (OOP) أحد الأساليب البرمجية التي تهدف إلى تنظيم الكود وتحسين كفاءته من خلال تقسيم البرنامج إلى وحدات تسمى الكائنات. تتمتع لغة بايثون بدعم قوي لهذا النموذج البرمجي، مما يجعلها خيارًا شائعًا بين المطورين. تعتمد OOP في بايثون على أربعة مفاهيم رئيسية: التغليف، والوراثة، والتعددية، والتجريد. هذه المفاهيم تسهل عملية تصميم البرامج الكبيرة والمعقدة بطريقة منظمة وفعالة.
التغليف في بايثون
التغليف هو عملية جمع البيانات والوظائف التي تتعلق بها داخل وحدة واحدة تدعى الكائن. في بايثون، يمكن تحقيق التغليف باستخدام الفئات. الفئة هي مخطط للكائنات، تحدد الخصائص (البيانات) والسلوكيات (الدوال) التي يمكن أن يمتلكها الكائن. مثال على ذلك هو إنشاء فئة تمثل سيارة:
class Car:
def __init__(self, brand, model, year):
self.brand = brand
self.model = model
self.year = year
def display_info(self):
print(f"Car: {self.brand} {self.model}, Year: {self.year}")
my_car = Car("Toyota", "Corolla", 2020)
my_car.display_info()
في هذا المثال، الفئة “Car” تحتوي على خصائص مثل العلامة التجارية والطراز وسنة الصنع، ودالة لعرض معلومات السيارة. يتم إنشاء كائن من الفئة باستخدام الدالة البانية __init__.
الوراثة في بايثون
الوراثة هي ميزة تتيح لفئة جديدة استيعاب خصائص ودوال فئة أخرى، مما يسهل إعادة استخدام الكود وتجنب التكرار. في بايثون، يمكن لفئة أن ترث من فئة أخرى عن طريق تحديد الفئة الأم بين قوسين بعد اسم الفئة الجديدة. على سبيل المثال، يمكننا إنشاء فئة جديدة تمثل سيارة كهربائية ترث من فئة “Car”:
class ElectricCar(Car):
def __init__(self, brand, model, year, battery_size):
super().__init__(brand, model, year)
self.battery_size = battery_size
def display_info(self):
super().display_info()
print(f"Battery size: {self.battery_size} kWh")
my_electric_car = ElectricCar("Tesla", "Model S", 2022, 100)
my_electric_car.display_info()
في هذا المثال، الفئة “ElectricCar” ترث من “Car” وتضيف خاصية جديدة تمثل حجم البطارية. كما أنها تعيد تعريف دالة “display_info” لتشمل عرض حجم البطارية بجانب المعلومات الأخرى.
