نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
PY

منهج Python

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Python/تعدد الأشكال (Polymorphism)

تعدد الأشكال (Polymorphism)

polymorphism pythonتعدد الأشكال pythonmethod overriding pythonpython OOP

الشرح

## تعدد الأشكال (Polymorphism)

Polymorphism معناه "أشكال متعددة" - القدرة على استخدام نفس الواجهة مع كائنات مختلفة.

### أنواع Polymorphism في Python:

**1. Method Overriding:** الـ Child Class تُعيد تعريف method من الـ Parent ```python class Animal: def speak(self): return "..." class Dog(Animal): def speak(self): return "هاو!" class Cat(Animal): def speak(self): return "مياو!" ```

**2. Duck Typing:** Python لا تهتم بنوع الكائن بل بما يستطيع فعله ```python # أي كائن له دالة area() يمكن استخدامه def print_area(shape): print(shape.area()) ```

الصياغة (Syntax)

syntax
1class Animal:
2 def __init__(self, name):
3 self.name = name
4
5 def speak(self):
6 return "..."
7
8class Dog(Animal):
9 def speak(self):
10 return f"{self.name}: هاو هاو!"
11
12class Cat(Animal):
13 def speak(self):
14 return f"{self.name}: مياو!"
15
16class Bird(Animal):
17 def speak(self):
18 return f"{self.name}: تشيرپ!"
19
20# Polymorphism في الفعل
21animals = [Dog("ريكس"), Cat("ميمي"), Bird("تويتي")]
22for animal in animals:
23 print(animal.speak()) # نفس الاستدعاء، أشكال مختلفة

أمثلة عملية

مثال 1: Polymorphism مع الأشكال الهندسية

Polymorphism مع الأشكال الهندسية
1import math
2
3class Shape:
4 def area(self): return 0
5 def name(self): return "شكل"
6
7class Circle(Shape):
8 def __init__(self, radius):
9 self.radius = radius
10 def area(self):
11 return math.pi * self.radius ** 2
12 def name(self): return "دائرة"
13
14class Rectangle(Shape):
15 def __init__(self, w, h):
16 self.w, self.h = w, h
17 def area(self):
18 return self.w * self.h
19 def name(self): return "مستطيل"
20
21shapes = [Circle(5), Rectangle(4, 6), Circle(3)]
22for s in shapes:
23 print(f"{s.name()}: المساحة = {s.area():.2f}")

نصائح احترافية

  • —**نصائح Polymorphism:**
  • —Duck Typing: "إذا كان يبدو كبطة ويصدر صوت بطة فهو بطة"
  • —Abstract Base Classes (ABC) لتطبيق interfaces في Python
  • —`@abstractmethod` لإجبار الـ Children على تطبيق method معينة
  • —Polymorphism يجعل الكود مرناً وقابلاً للتوسع بسهولة

الدرس السابق

الوراثة وتطوير الفئات (Inheritance)

الدرس التالي

الكبسلة وإخفاء البيانات (Encapsulation & Private Attributes)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر