العودة إلى الدورة

تعدد الأشكال والـ Duck Typing

برمجة Python: معسكر التدريب من الصفر إلى الاحتراف

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

تعدد الأشكال يعني 'أشكالاً متعددة'. في Python، يشير هذا لقدرة كائنات مختلفة على الاستجابة لنفس استدعاء الدالة (مثل speak()) بطرق مختلفة ومحددة، وغالباً ما يتحقق ذلك عبر الوراثة.

مثال (تكملة للوراثة)

يمكننا التعامل مع جميع الحيوانات بشكل عام، رغم أن كل حيوان ينفذ دالة الـ speak الخاصة به.

python def animal_sound(animal): # المخرج الدقيق يعتمد على نوع الكائن الممرر print(animal.speak())

بافتراض فئات Dog و Cat السابقة:

fido = Dog('Fido') luna = Cat('Luna')

animals = [fido, luna]

for creature in animals: animal_sound(creature)

المخرجات:

Fido says Woof!

Luna says Meow.

الـ Duck Typing (تعدد أشكال Python)

تستخدم Python مفهوماً يسمى Duck Typing: "إذا كان يمشي كبطة ويصيح كبطة، فهو بالتأكيد بطة".

في Python، لا نهتم بالنوع الرسمي للكائن (هل هو Dog أم Cat)، بل نهتم فقط بوجود الدالة المطلوبة (هل يمتلك دالة speak()؟).

python class Robot: def speak(self): return "BEEP BOOP."

robot = Robot()

animal_sound(robot) # سيعمل، لأن Robot يمتلك دالة .speak().

المخرجات: BEEP BOOP.