تجاوز أسلوب في بايثون: ما هو ، كيف نفعل ذلك؟

نشرت: 2021-09-28

Python هي لغة عامة عالية المستوى يجب تعلمها لعشاق برمجة الكمبيوتر. على غرار لغات الكمبيوتر الأخرى المستخدمة على نطاق واسع مثل JAVA و C ++ و Golang و Ruby وما إلى ذلك ، تعد Python أيضًا لغة برمجة موجهة للكائنات حيث يعتمد الترميز على الفئات والكائنات. يسمح المفهوم للمطورين ببناء أكواد بسيطة قابلة لإعادة الاستخدام والتي تشير بعد ذلك إلى الكائنات الفردية. هناك العديد من الميزات المفيدة التي توفرها لغات OOP ، أحدها هو تجاوز الطريقة.

في هذه المقالة ، سوف نفهم مفهوم الوراثة لاستكشاف تجاوز الطريقة في Python. لنبدأ بفهم ماهية الفصل.

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

ما هو الفصل؟

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

ما هو الميراث؟ ما هي فوائده؟

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

تُعرف قدرة فئة ما على اشتقاق أو وراثة ميزات من فئات أخرى باسم الوراثة. تسمى الفئة التي تُستخدم خصائصها وخصائصها لاشتقاق فئة فرعية فئة الأصل.

فيما يلي فوائد الميراث:

  • يتيح الوراثة للمستخدمين تمثيل العلاقات في الوقت الفعلي بشكل جيد.
  • يسمح بإعادة استخدام الرموز. كما يسمح للمبرمجين بتوفير المزيد من الخصائص للفصل.
  • يسمح بالانتقال. لنفترض أن الفئة Q تستمد الميزات من الفئة W ، فإن الفئات الفرعية لـ Q سترث تلقائيًا من الفئة W.

أنواع الميراث

هناك ثلاثة أنواع من الميراث وهي كالتالي ؛

1. الميراث الواحد

في الوراثة الفردية ، يمكن للفئة المشتقة أن ترث ميزات من فئة أصل واحد. إنه يمكّن من إعادة استخدام الرموز وأيضًا إضافة ميزات جديدة.

2. تعدد الميراث

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

3. الميراث متعدد المستويات

عندما يتم توريث ميزات الفئة الأصلية والفئة الفرعية إلى فئة مشتقة أخرى ، فإنها تسمى الوراثة متعددة المستويات.

ما هي طريقة تجاوز في بايثون؟

تجاوز الطريقة هو سمة من سمات لغات البرمجة الموجهة للكائنات حيث يمكن للفئة الفرعية أو الفئة الفرعية تزويد البرنامج بخصائص محددة أو عملية تنفيذ محددة للبيانات المقدمة والتي تم تحديدها بالفعل في الفئة الأصلية أو الفئة الفائقة.

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

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

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

سوف يستكشف هذا القسم الميزات البارزة التي تقدمها طريقة تجاوز بيثون:

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

فهم تجاوز الطريقة: الوراثة المتعددة والمتعددة المستويات

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

1. تعدد الميراث

في هذا النوع من وراثة الفئة أو الكائن ، ترث الفئة الفرعية ميزات وخصائص فئات أو قواعد أصل متعددة. على سبيل المثال ، هناك ثلاث فئات رئيسية مختلفة - الفئة 1 ، والفئة 2 ، والفئة 3 ، وهناك class.a ، وهي الفئة الفرعية التي تنفذ ميزات الميراث المتعدد. سيحتوي class.a على ميزات موروثة من جميع الفئات الأساسية الثلاثة.

هنا نموذج لبرنامج:

# تحديد فئة الوالدين 1

فئة Parent1 ():

# طريقة عرض الوالدين

عرض def (الذات):

طباعة ("داخل Parent1")

# تحديد فئة الوالدين 2

فئة Parent2 ():

# طريقة عرض الوالدين

عرض def (ذاتي):

طباعة ("داخل Parent2")

# تحديد فئة الطفل

فئة الطفل (Parent1، Parent2):

# طريقة عرض الطفل

عرض def (الذات):

طباعة ("داخل الطفل")

# كود السائق

obj = طفل ()

obj.show ()

obj.display ()

انتاج:

داخل الطفل

داخل Parent2

2. الوراثة متعددة المستويات

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

هنا نموذج لبرنامج:

والد فئة ():

عرض def (ذاتي):

طباعة ("داخل الوالدين")

فئة الطفل (الوالد):

# طريقة عرض الطفل

عرض def (الذات):

طباعة ("داخل الطفل")

فئة GrandChild (طفل):

# طريقة عرض الطفل

عرض def (الذات):

طباعة ("داخل GrandChild")

# كود السائق

ز = GrandChild ()

g.show ()

g.display ()

الإخراج :

داخل جراند تشيلد

داخل الوالد

استدعاء طرق الصنف الأساسي ضمن الأساليب المتجاوزة

هناك طريقة يمكن من خلالها استدعاء عمليات الصنف الأصل بين التوابع المتجاوزة. يمكن القيام بذلك باستخدام العمليات التالية:

  • استخدام اسم الفصل

كتابة طريقة اسم الفئة في الطريقة المتجاوزة في الفئة الفرعية يمكن أن تستدعي الطريقة المتوفرة في الفئة الرئيسية.

  • باستخدام وظيفة سوبر ()

تقدم لغة البرمجة في Python وظيفة تسمى super () ، والتي تُستخدم للإشارة إلى الفئة الأصل بشكل خاص.

خاتمة

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

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

تواصل معنا اليوم لبدء رحلة التعلم الخاصة بك!

فرق بين التجاوز والحمل الزائد.

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

1. أسلوب التحميل الزائد يمثل تعدد أشكال وقت الترجمة ، في حين أن تجاوز الأسلوب يمثل تعدد أشكال وقت التشغيل.
2. طريقة التحميل الزائد لا يمكن تنفيذها في بايثون ، بينما تنفيذ تجاوز الطريقة ممكن في ظل ظروف معينة.

ما هي ميزات تجاوز الطريقة؟

فيما يلي ميزات تجاوز الطريقة:

1. يجسد تعدد الأشكال وقت التشغيل.
2. أنه يؤسس صلة بين فئة الأصل والطبقة التابعة.
3. نظرًا لأنه يربط فئة واحدة على الأقل ، فنحن بحاجة إلى استخدام ميزة الميراث.
4. يساعدك تجاوز الطريقة على استخدام اسم واحد لأكثر من وظيفة واحدة.

نستخدم طريقة التجاوز لتطبيق طريقة الصنف الأصل في الصنف المشتق.

ما هي أنواع الميراث المختلفة؟ هل من الممكن تجاوز الطرق الخاصة في بايثون؟

في المقام الأول ، يستخدم تجاوز الأسلوب الميراث متعدد المستويات ومتعدد المستويات.

في الوراثة متعددة المستويات ، يتم توريث الفئة الفرعية من فئة أساسية تتكون من خصائص الفئة الأصلية. ولكن في حالة الميراث المتعدد ، تُظهر الفئة الفرعية خصائص أكثر من فئة أو قواعد رئيسية واحدة أو أكثر.

لا يمكن أن يحدث تجاوز الطريقة الخاصة في Java ، ولكن يمكن تنفيذه في Python باستخدام عملية تُعرف باسم "name mangling".