چندریختی (polymorphism) در پایتون
چندریختی
چندریختی به این معنی است که کدها بتوانند در شرایط مختلف به شکل های مختلف پاسخ دهند. چند ریختی جایی کاربرد دارد که بخواهیم بصورت generic کد بنویسیم یعنی یک قطعه کد خاص بنویسیم که با انواع متفاوت کار کند. به تعریف دیگر چند ریختی به ما این امکان را میدهد تا متدهایی در کلاس فرزند با همان نامی که در کلاس والد آنها تعریف شده تعریف کنیم.
در ادامه مثالی از چند ریختی در پایتون آورده ایم که به درک موضوع استفاده دو نوع کلاس مختلف به یک شکل کمک میکند.
class India(): def capital(self): print("Seoul is the capital of South Korea.") def language(self): print("Hindi is the most common language of India.") def type(self): print("India is a developing country.") class USA(): def capital(self): print("Tehran is capital of Iran.") def language(self): print("Persian is the main language of Iran.") def type(self): print("Iran is in the Middle East.") obj_ind = India() obj_usa = USA() for country in (obj_ind, obj_usa): country.capital() country.language() country.type()
که خروجی به این صورت میباشد:
Seoul is the capital of South Korea.
Hindi is the most common language of India.
India is a developing country.
Tehran is capital of Iran.
Persian is the main language of Iran.
Iran is in the Middle East.
روشهای مختلفی برای استفاده از چندریختی در پایتون وجود دارد. برای تعریف چندریختی میتوانید از تابع، متدهای کلاس یا اشیا مختلف استفاده کنید.
- چندریختی با تابع و اشیا (به این صورت که تابعی را ایجاد میکنیم تا بتواند هر شی را بگیرد و امکان چندریختی را فراهم کند).
- چندریختی با متدهای کلاس (پایتون از دو نوع کلاس مختلف به طور یکسان استفاده می کند).
- چندریختی با وراثت (چندریختی در پایتون متدهایی را در کلاس فرزند تعریف می کند که هم نام متدهای کلاس والد هستند).
دوست عزیز امیدوارم مطالب این پست برایتان مفید بوده باشد اگر قصد یادگیری اصولی مبحث چندریختی رو دارید به آموزش چندریختی در پایتون وبسایت درسمن مراجعه کنید.