دليل كامل لأسلوب التحميل الزائد في بايثون (مع أمثلة)

نشرت: 2022-04-23

التحميل الزائد هو قدرة الوظيفة أو الطريقة أو المشغل على العمل بشكل مختلف عندما تقوم بتمرير معلمات مختلفة لنفسها. أسلوب التحميل الزائد أو التحميل الزائد للوظيفة في بايثون لهما مصطلحات شائعة الاستخدام. تتمثل بعض المزايا الرئيسية للحمل الزائد في أنه يمكنك استخدام طريقة واحدة بطرق متعددة ، مما يساعدك في الحفاظ على نظافة الكود ويزيل التعقيد عند العمل مع فريق.

جدول المحتويات

ما هي طريقة التحميل الزائد؟

في البرمجة الموجهة للكائنات ، يتم استخدام أسلوب التحميل الزائد في سيناريوهات حيث ، بالنسبة لكائن معين ، يمكن استدعاء طريقة معينة بأكثر من طريقة وفقًا لمتطلبات المشروع.

تمت مناقشة أمثلة التحميل الزائد للطريقة في بايثون بالتفصيل لاحقًا في المقالة.

ما هو أسلوب التجاوز؟

يشبه تجاوز الطريقة في Python طريقة التحميل الزائد باستثناء حدوث تجاوز لهذه الطريقة بين فئة فرعية وفئة فائقة. لها نفس المعلمات عندما يتم استدعاء الأساليب. ومع ذلك ، فإنهم يتصرفون بشكل مختلف بسبب تجاوز بعض الوظائف من الطبقة العليا.

مثال على تجاوز الطريقة

فئة X:

طريقة def 1 (ذاتية):

طباعة ("أنا الميزة الأولى للفئة X")

طريقة def 2 (ذاتية):

طباعة ("أنا الميزة الثانية للفئة X")

الفئة Y (X):

طريقة def 1 (ذاتية):

print ("أنا الميزة الأولى المعدلة للفئة X في الفئة Y")

طريقة def 3 (ذاتية):

طباعة ("أنا سمة من سمات الفئة Y")

obj = Y ()

obj.method1 ()

انتاج:

أنا أول ميزة معدلة للفئة X في الفئة Y.

تم تجاوز طريقة 1 بواسطة الفئة Y.

تعلم دورات علوم البيانات عبر الإنترنت في upGrad

طريقة التحميل الزائد في بايثون

مشكلة التحميل الزائد للطريقة في Python هي أن Python لا تدعمها افتراضيًا. ومع ذلك ، هناك حلول لفعل الشيء نفسه.

المشكلة

دعونا نفكر في الكود التالي:

def إضافة (أ ، ب):

ق = أ + ب

مطبوعات)

إضافة def (أ ، ب ، ج):

ق = أ + ب + ج

مطبوعات)

# إضافة (8 ، 9) يظهر خطأ

إضافة (8 ، 9 ، 2)

للوهلة الأولى ، يبدو الرمز جيدًا ، ولكن عندما تحاول تنفيذه باستخدام وسيطتين ، ستظهر لك Python خطأً لأنه في Python ، عندما يكون لديك أكثر من طريقة واحدة بنفس الاسم ولكن عددًا مختلفًا من الوسائط ، فقط يمكن استخدام أحدث طريقة محددة.

هناك طريقتان مختلفتان يمكننا من خلالهما التغلب على مشكلة التحميل الزائد للطريقة في بايثون.

1: يختلف استخدام نفس الأساليب وفقًا لنوع بيانات الوسائط

يمكننا أن نرى وسيطة لمعرفة نوع البيانات ، جنبًا إلى جنب مع * args التي تسمح بتمرير عدد متغير من الوسائط إلى طريقة في Python. يمكننا بعد ذلك استخدام عبارات if للتحكم في كيفية تصرف الطريقة وفقًا للإدخال.

الشفرة:

إضافة def (dt، * args):

إذا كانت dt == 'int':

ق = 0

إذا كانت dt == 'str':

ق = "

لـ x في args:

ق = س + س

مطبوعات)

add ('int'، 11، 9)

إضافة ("str" ​​، "مرحبًا" ، "كيف حالك؟")

انتاج:

20

مرحبا كيف حالك؟

كان هذا هو الحل الأول لتنفيذ طريقة التحميل الزائد في Python.

استكشف دوراتنا الشهيرة في علوم البيانات

برنامج الدراسات العليا التنفيذية في علوم البيانات من IIITB برنامج الشهادة المهنية في علوم البيانات لاتخاذ قرارات الأعمال ماجستير العلوم في علوم البيانات من جامعة أريزونا
برنامج الشهادة المتقدمة في علوم البيانات من IIITB برنامج الشهادة الاحترافية في علوم البيانات وتحليلات الأعمال من جامعة ماريلاند عرض جميع دورات علوم البيانات

2: استخدام ديكور متعدد الإرسال (طريقة أكثر فعالية)

يعد Multi Dispatch Decorator بمثابة حل بديل ويعمل تمامًا كما يفترض. يمكنك تثبيته باستخدام pip3.

pip3 تثبيت إرساليات متعددة

الشفرة:

من إيفاد استيراد متعدد

dispatch (int، int) # لعدد 2 من الوسيطات الصحيحة

إضافة def (n1، n2):

s = n1 + n2

مطبوعات)

dispatch (int، int، int) # لـ 3 وسيطات صحيحة

إضافة def (n1، n2، n3):

s = n1 + n2 + n3

مطبوعات)

dispatch (float، float، float) # للوسيطات العائمة

إضافة def (n1، n2، n3):

s = n1 + n2 + n3

مطبوعات

add (5،2)

add (6،1،4)

add (3.4،1.2،5.6)

انتاج:

7

11

10.2

عند التنفيذ ، يقوم المرسل بإنشاء كائن جديد يخزن تطبيقات مختلفة للطريقة ويقرر طريقة التحديد بناءً على نوع وعدد الوسائط التي تم تمريرها أثناء استدعاء الطريقة. هذه الطريقة في التحميل الزائد في بايثون أكثر كفاءة.

اقرأ مقالاتنا الشهيرة في علوم البيانات

المسار الوظيفي لعلوم البيانات: دليل مهني شامل النمو الوظيفي لعلوم البيانات: مستقبل العمل هنا لماذا علم البيانات مهم؟ 8 طرق تضيف علوم البيانات قيمة إلى الأعمال
أهمية علم البيانات للمديرين ورقة الغش النهائية لعلم البيانات التي يجب أن يمتلكها علماء البيانات أهم 6 أسباب لماذا يجب أن تصبح عالم بيانات
يوم في حياة عالم البيانات: ماذا يفعلون؟ ضبطت الأسطورة: علم البيانات لا يحتاج إلى تشفير ذكاء الأعمال مقابل علوم البيانات: ما هي الاختلافات؟

الاستنتاجات

إذا كنت ترغب في الدخول إلى مجال علوم البيانات ، فإن Python هي خطوة أولى جيدة يجب اتخاذها. للتعمق ودراسة الموضوع بشكل أكبر ، يمكنك الاطلاع على دورات الشهادات المتقدمة عبر الإنترنت مثل البرنامج التنفيذي في علوم البيانات من IIIT-Bangalore بالتعاون مع upGrad . يغطي هذا البرنامج الجوانب المهمة للموضوع ويوفر الكثير من المزايا الإضافية مثل المساعدة في العمل ، والإرشاد 1: 1 ، والدعم عبر الإنترنت ، والمحاضرات الحية ، والوحدات الإضافية الاختيارية للمتحمسين الذين يرغبون في زيادة المهارات.

ما هو الفرق بين الوظيفة والطريقة في بايثون؟

في بايثون ، هناك نوعان من الوظائف: وظائف مضمنة ووظائف يحددها المستخدم. print () و len () أمثلة على الوظائف المضمنة. الوظائف التي يحددها المستخدم في Python هي وظائف يمكننا تعريف أنفسنا بها للقيام بمهمة محددة أكثر من مرة في برنامج نموذجي. الطريقة تشبه الوظيفة تمامًا باستثناء أن الأساليب تنتمي إلى فئة ويمكن استدعاؤها فقط على كائن. (بناء الجملة: طريقة obj.method ())

كيف أختار بين Python و R؟

Python و R هما اللغتان الأعلى استخدامًا في علوم البيانات. بينما يعتمد ما يجب استخدامه على عدة عوامل مثل الشركة التي تستهدفها ، ونوع المشروع ، ومتطلبات العميل ، وما إلى ذلك ، بشكل عام ، إذا كنت مبتدئًا في البرمجة ، وتعمل في بيئة هندسية تبني تطبيقات واسعة النطاق ، Python هو خيار رائع. من ناحية أخرى ، إذا كانت لديك خبرة سابقة في البرمجة وترغب في تشغيل مهام تحليل البيانات بسرعة وتصور بياناتك باستخدام رسومات جميلة لاتخاذ قرار أفضل من الناحية الإحصائية ، فإن R هي السبيل للذهاب.

كم من الوقت يستغرق إتقان علوم البيانات؟

لكل فرد وتيرة التعلم الخاصة به. على الرغم من أنه بالنسبة للمبتدئين الذين ليس لديهم خبرة سابقة في البرمجة ، سوف يستغرق الأمر ما يقرب من 6-7 أشهر لجعل أساسياتك قوية. بعد ذلك ، يعتمد الأمر مرة أخرى على مقدار التدريب الذي تمارسه والمشاريع التي يجب العمل عليها. إذا تابعت شهادة عبر الإنترنت ، فيجب أن تكون قادرًا على إتقانها في غضون عام تقريبًا.