تعدد الأشكال
استكشفوا كيف يتيح تعدد الأشكال شيفرة مرنة وديناميكية
تعدد الأشكال درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 6. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 6 دروس في المجموع.
مقدمة إلى تعدد الأشكال
مقدمة إلى تعدد الأشكال
يُعد تعدد الأشكال مفهومًا أساسيًا في البرمجة كائنية التوجه (OOP)، إذ يتيح التعامل مع كائنات من فئات مختلفة على أنها كائنات تنتمي إلى فئة أساسية مشتركة. ويوفر ذلك مرونة وإمكانية إعادة استخدام الشيفرة.
في هذا الدرس، ستتعلم كيفية تطبيق تعدد الأشكال في Python باستخدام الأساليب والفئات.

ما تعدد الأشكال؟
ما تعدد الأشكال؟
يتيح تعدد الأشكال للأساليب الموجودة في فئات مختلفة مشاركة الاسم نفسه مع اختلاف سلوكها. وهذا يجعل الشيفرة أكثر مرونة وأسهل في التوسعة.
# Defining a superclass
class Animal:
# Method in the superclass
def speak(self):
print("Animal speaks") # Generic message for all animals
# Defining a subclass that overrides the speak method
class Dog(Animal):
def speak(self):
print("Dog barks") # Specific behavior for Dogتعدد الأشكال باستخدام الأساليب
تعدد الأشكال باستخدام الأساليب
يمكن للأساليب التي تحمل الاسم نفسه في فئات مختلفة أن توفر تطبيقات مختلفة.
# Another subclass with its own implementation of the speak method
class Cat(Animal):
def speak(self):
print("Cat meows") # Specific behavior for Cat
# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal
def animal_sound(animal):
animal.speak() # Calls the appropriate speak method based on the object type
# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()
# Calling the function with different objects
animal_sound(dog) # Outputs: Dog barks
animal_sound(cat) # Outputs: Cat meowsمثال على تعدد الأشكال باستخدام الأساليب
تعدد الأشكال باستخدام الأساليب
يمكن للأساليب التي تحمل الاسم نفسه في فئات مختلفة أن توفر تطبيقات مختلفة.
# Another subclass with its own implementation of the speak method
class Cat(Animal):
def speak(self):
print("Cat meows") # Specific behavior for Cat
# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal
def animal_sound(animal):
animal.speak() # Calls the appropriate speak method based on the object type
# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()
# Calling the function with different objects
animal_sound(dog) # Outputs: Dog barks
animal_sound(cat) # Outputs: Cat meowsتعدد الأشكال باستخدام الدوال
تعدد الأشكال باستخدام الدوال
يتيح تعدد الأشكال للدالة نفسها العمل على أنواع مختلفة من الكائنات.
# Defining two unrelated classes
class Bird:
def fly(self):
print("Bird flies") # Behavior specific to birds
class Plane:
def fly(self):
print("Plane flies") # Behavior specific to planes
# Function demonstrating polymorphism
# It can accept objects of both Bird and Plane
def flying_object(obj):
obj.fly() # Calls the appropriate fly method based on the object type
# Creating objects of Bird and Plane
bird = Bird()
plane = Plane()
# Calling the function with different objects
flying_object(bird) # Outputs: Bird flies
flying_object(plane) # Outputs: Plane fliesتعدد الأشكال باستخدام الوراثة
تعدد الأشكال باستخدام الوراثة
غالبًا ما يتحقق تعدد الأشكال من خلال الوراثة، حيث تعيد الفئات الفرعية تعريف الأساليب الموروثة من الفئة الأساسية.
# Superclass representing a generic vehicle
class Vehicle:
def start(self):
print("Vehicle starts") # Generic behavior for all vehicles
# Subclass representing a specific type of vehicle
class Car(Vehicle):
def start(self):
print("Car starts") # Specific behavior for cars
# Subclass representing another specific type of vehicle
class Bike(Vehicle):
def start(self):
print("Bike starts") # Specific behavior for bikes
# Function demonstrating polymorphism
# It can accept objects of any subclass of Vehicle
def start_vehicle(vehicle):
vehicle.start() # Calls the appropriate start method based on the object type
# Creating objects of Car and Bike
car = Car()
bike = Bike()
# Calling the function with different objects
start_vehicle(car) # Outputs: Car starts
start_vehicle(bike) # Outputs: Bike startsمزايا تعدد الأشكال
مزايا تعدد الأشكال
يوفر تعدد الأشكال عدة فوائد:
- إمكانية إعادة استخدام الشيفرة ومرونتها.
- تحسين سهولة قراءة الشيفرة وتنظيمها.
- تشجيع استخدام الواجهات المشتركة.
مثال من الحياة الواقعية
مثال من الحياة الواقعية
إليك مثالًا من الحياة الواقعية يستخدم تعدد الأشكال.
# Real-world example of polymorphism
class Developer:
def work(self):
print("Writing code") # Specific task for developers
class Designer:
def work(self):
print("Designing user interfaces") # Specific task for designers
# Function demonstrating polymorphism
# It can accept objects of both Developer and Designer
def workday(employee):
employee.work() # Calls the appropriate work method based on the object type
# Creating objects of Developer and Designer
developer = Developer()
designer = Designer()
# Calling the function with different objects
workday(developer) # Outputs: Writing code
workday(designer) # Outputs: Designing user interfacesالأخطاء الشائعة عند استخدام تعدد الأشكال
الأخطاء الشائعة عند استخدام تعدد الأشكال
إليك بعض الأخطاء التي يجب تجنبها:
- نسيان إعادة تعريف الطرق في الفئات الفرعية عند الحاجة.
- الخلط في ترتيب حل الطرق (MRO) عند استخدام الوراثة المتعددة.
- استخدام تعدد الأشكال دون حاجة في المهام البسيطة.
ماذا تعلمنا؟
ماذا تعلمنا؟
في هذا الدرس، تعلمت:
- ما هو تعدد الأشكال وكيف يعمل في Python.
- كيفية تطبيق تعدد الأشكال باستخدام الأساليب والوراثة.
- مزايا استخدام تعدد الأشكال في البرمجة كائنية التوجه.
أحسنت! لننتقل إلى الموضوع التالي.

الأسئلة الشائعة
هل درس «تعدد الأشكال» مجاني؟
نعم — نص درس «تعدد الأشكال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 6 دروس في المجموع.
ماذا ستتعلم في «تعدد الأشكال»؟
استكشفوا كيف يتيح تعدد الأشكال شيفرة مرنة وديناميكية تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 6.
كم من الوقت يستغرق درس «تعدد الأشكال»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الفئات والكائنات
- السمات والدوال
- الوراثة
- تعدد الأشكال
- التغليف والتجريد
- الدوال السحرية (__str__ و__repr__ وغيرهما)