خانه - پایگاه دانش کارجویا - چندریختی در پایتون | ۳ روش مهم

چندریختی در پایتون | ۳ روش مهم

فهرست مطالب

با سلام خدمت تمامی دوستان عزیزم ؛ توی این مقاله به بررسی یکی دیگر از اصول مهم شی گرایی در پایتون یعنی چندریختی در پایتون بپردازیم .

اگه با مفهوم شی گرایی در پایتون آشنا نیستین بهتون پیشنهاد می کنم قبل از ادامه ی مطالعه ی این مقاله حتما یه سری به مقاله ی شی گرایی در پایتون | ۳ اصل مهم بزنین .

همچنین جهت آشنایی با اصول دیگر شی گرایی در پایتون پیشنهاد می کنم مقالات زیر رو مطالعه کنید :

خب دیگه وقتشه که با یکی از مهم ترین اصول شی گرایی در پایتون یعنی چندریختی (polymorphism) در پایتون آشنا شیم .

چندریختی در پایتون :
به طور کلی میشه گفت چندریختی در پایتون به معنی استفاده کردن از نام یکسان متد برای انواع مختلفی از آن و با کاربرد های مختف است . به زبان خودمونی یعنی برای مثال بشه از چند تا متد هم نام در کلاس های مختلف استفاده های مختلفی کرد .

برای اینکه کاربرد چندریختی در پایتون به خوبی جا بیفته یه مثال می زنم :

فرض کنید ما یک کلاس به نام Car داریم و درون این کلاس متد هایی به نام های speed و options وجود دارد و کلاس Benz نیز مانند کلاس Car متدی به نام speed دارد و از کلاس Car ارث بری می کند .

تصویر زیر کلاس Car و Benz را به همراه اجزای آن ها نشان می دهد :

چندریختی در پایتون

 

همانطور که در تصویر بالا مشاهده می کنید از آنجایی که Benz از کلاس Car ارث بری می کند هنگام فراخوانی تابع options همان متدی که داخل کلاس Car می باشد اجرا می شود و در هنگام فراخوانی متد speed همان متدی که در کلاس Benz می باشد اجرا می شود .

امیدوارم تا اینجای کار یه دید نسبی نسبت به چندریختی در پایتون بدست آورده باشین .

در برنامه نویسی شی گرا به ۳ روش می توان چندریختی در پایتون را پیاده سازی کرد :

  1. Method Overriding
  2. Method Overloading
  3. Operator Overloading

که در ادامه به بررسی این روش ها همراه با مثال می پردازیم .

Method Overriding :

در این روش یک کلاس از کلاس دیگر ارث برده و متدی از کلاس پدر در کلاس فرزند مجددا پیاده سازی می شود که به این کار Method Overriding می گویند . مثال بالا نمونه ای از این روش چندریختی در پایتون می باشد .

نکته : در این روش اگر بخواهیم متدی متناظر در کلاس پدر را فراخوانی کنیم ، کافی است از تابع super استفاده کنیم .

Method Overloading :

این روش از سری روش های پیاده سازی چندریختی در پایتون بدین صورت است که امکان قرار گرفتن چندین متد همنام که در نوع یا تعداد پارامترهای ورودی با هم تفاوت دارند را به ما می دهد .

بدین صورت که برای مثال در کلاس Benz چندین متد با نام speed داریم و متد اول ورودی max می گیرد و آن را چاپ می کند . متد دیگر با همین نام نیز میانگین سرعت را چاپ می کند . در صورتی که متد speed بدون هیچ پارامتری توسط شی ای که از کلاس Benz ساخته شده فراخوانی شود ، آخرین متد speed در کلاس اجرا می شود .

چندریختی در پایتون

 

Operator Overloading :

در برخی موارد نیز برای پیاده سازی چندریختی در پایتون می توان ازOperator Overloading استفاده کرد ؛ بدین صورت که با استفاده از یک عملگر چندین عملیات مختلف انجام داد . برای مثال عملگر جمع (+) زمانی که بین دو متغیر عددی یا شی که جنس آن ها int ، float و … است عمل جمع ریاضی را انجام می دهد اما اگر همین عملگر میان دو متغیر یا شی از جنس رشته باشد (str) کاری که انجام می دهد پیوند زدن دو رشته به یکدیگر است که به این کار concatenation می گویند .

در پایتون برای عملگر ها می توان متدهای معادل نیز تعریف کرد و به جای هر عملگر می توان از متد نظیرش استفاده کرد . برای مشاهده ی این متد ها و دیدن مثال های بیشتر می توانید به مستندات پایتون و یا انتهای مقاله ی اینجا یه سری بزنین .

خب دوستان این مقاله هم در اینجا به پایان می رسه . ممنونم که تا انتهای مقاله من رو راهنمایی کردین . امیدوارم بعد از مطالعه ی این مقاله به راحتی بتونین از چندریختی در پایتون استفاده کنین .

تا مقاله ی بعدی خداوند یار و نگهدارتون .

ebrahim
ebrahim

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *