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

ما المقصود بتعدد الأشكال؟
تعدد الأشكال مفهوم أساسي في البرمجة كائنية التوجه، يتيح التعامل مع كائنات من فئات مختلفة باعتبارها كائنات من فئة أساسية مشتركة. كما يتيح للأسلوب نفسه أن يعمل بطريقة مختلفة بحسب الكائن الذي يستدعيه.
- التعريف: «أشكال متعددة» - قدرة الكائنات المختلفة على الاستجابة بشكل فريد لاستدعاء الأسلوب نفسه.
- الهدف: تعزيز مرونة الشفرة وتكاملها من خلال السماح باستخدام كائنات قابلة للتبادل.
لنرَ كيفية عمل تعدد الأشكال في Python!
تطبيق تعدد الأشكال
يمكن تحقيق تعدد الأشكال في Python من خلال إعادة تعريف الأساليب واستخدام الدوال المضمّنة التي تعمل مع أنواع مختلفة من الكائنات.
- إعادة تعريف الأساليب: إعادة تعريف أسلوب في فئة فرعية سبق تعريفه في الفئة الأساسية.
- الدوال المضمّنة: دوال مثل
len()تعمل مع أنواع بيانات متعددة.
لنلقِ نظرة تفصيلية على إعادة تعريف الأساليب.
إعادة تعريف الأساليب
تتيح إعادة تعريف الأساليب للفئة الفرعية توفير تطبيق محدد لأسلوب سبق تعريفه في الفئة الأساسية. ويُعد ذلك جانبًا أساسيًا من تعدد الأشكال.
مثال:
# Defines the Animal parent class with a speak method
class Animal:
def speak(self):
print("The animal makes a sound.") # Generic speak method
إنشاء فئات فرعية باستخدام أساليب معاد تعريفها
لننشئ فئات فرعية ترث من Animal وتعيد تعريف الأسلوب speak لتوفير سلوكيات محددة.
مثال:
# Defines the Dog child class inheriting from Animal
class Dog(Animal):
def speak(self):
print("The dog barks.") # Overridden speak method
# Defines the Cat child class inheriting from Animal
class Cat(Animal):
def speak(self):
print("The cat meows.") # Overridden speak method
استخدام تعدد الأشكال مع الأساليب المعاد تعريفها
لننشئ الآن كائنات من الفئات الفرعية ونرَ كيف تُظهر سلوكيات مختلفة باستخدام اسم الأسلوب نفسه.
مثال:
# Creates objects of Dog and Cat classes
dog = Dog()
cat = Cat()
# Calls the speak method on both objects
dog.speak() # Output: The dog barks.
cat.speak() # Output: The cat meows.
تعدد الأشكال مع الدوال المضمّنة
لا يقتصر تعدد الأشكال على الفئات التي يعرّفها المستخدم. فالدوال المضمّنة في Python، مثل len()، تعمل مع أنواع بيانات مختلفة، مما يوضّح السلوك متعدد الأشكال.
مثال:
# Uses len() with a list
my_list = [1, 2, 3, 4]
print(len(my_list)) # Output: 4
# Uses len() with a string
my_string = "Hello"
print(len(my_string)) # Output: 5
# Uses len() with a dictionary
my_dict = {"a": 1, "b": 2}
print(len(my_dict)) # Output: 2
برنامج مثالي: حساب مساحة الشكل
لننشئ برنامجًا يحسب مساحة أشكال مختلفة باستخدام تعدد الأشكال. سنعرّف فئة أساسية باسم Shape وفئتين فرعيتين هما Circle وRectangle تعيدان تعريف الأسلوب area.
الشفرة:
# Defines the Shape parent class with an area method
class Shape:
def area(self):
pass # Placeholder method
# Defines the Circle child class inheriting from Shape
class Circle(Shape):
def __init__(self, radius):
self.radius = radius # Sets the radius of the circle
def area(self):
return 3.14 * self.radius ** 2 # Calculates area of the circle
# Defines the Rectangle child class inheriting from Shape
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width # Sets the width of the rectangle
self.height = height # Sets the height of the rectangle
def area(self):
return self.width * self.height # Calculates area of the rectangle
# Creates objects of Circle and Rectangle classes
circle = Circle(5)
rectangle = Rectangle(4, 6)
# Calculates and prints areas using polymorphism
print("Circle Area:", circle.area()) # Output: Circle Area: 78.5
print("Rectangle Area:", rectangle.area()) # Output: Rectangle Area: 24
# Defines the Vehicle parent class with a move method
class Vehicle:
def move(self):
print("The vehicle moves.")
# Defines the Bicycle child class inheriting from Vehicle
class Bicycle(Vehicle):
def move(self):
print("The bicycle pedals forward.")
# Defines the Airplane child class inheriting from Vehicle
class Airplane(Vehicle):
def move(self):
print("The airplane flies in the sky.")
# Creates objects of Bicycle and Airplane classes
bike = Bicycle()
plane = Airplane()
# Calls the move method on both objects
bike.move()
plane.move()
أحسنتم!
لقد تعلمتم تعدد الأشكال في Python وكيف يتيح للكائنات من الفئات المختلفة الاستجابة بشكل فريد لاستدعاءات الأسلوب نفسها. يعزز تعدد الأشكال مرونة شفرتكم وقابليتها للتوسع، مما يسهل إدارتها وتطويرها. واصلوا التدريب من خلال إنشاء المزيد من الفئات والأساليب التي تستخدم السلوك متعدد الأشكال لتعميق فهمكم!

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