دوره‌ها / آموزش پایتون (Python) / چندریختی (Python Polymorphism)

چندریختی (Python Polymorphism)

15 دقیقه Article

چندریختی: یک نام، چندین رفتار (Polymorphism) 🎭🌈

واژه "چندریختی" به معنای داشتن "اشکال مختلف" است. در برنامه‌نویسی، چندریختی به اشیائی از کلاس‌های مختلف اجازه می‌دهد تا از طریق یک واسط (Interface) یکسان عمل کنند.

۱. چندریختی در کلاس‌ها

چندریختی اغلب در مورد متدهایی استفاده می‌شود که در کلاس‌های مختلف نام یکسانی دارند اما کارهای متفاوتی انجام می‌دهند.

class Car:
    def move(self):
        print("Drive!")

class Boat:
    def move(self):
        print("Sail!")

# هر دو کلاس متد move دارند

اکنون می‌توانید یک حلقه بنویسید که بدون توجه به نوع کلاس، متد move() را صدا بزند.

۲. چندریختی در ارث‌بری

این مفهوم زمانی قدرتمندتر می‌شود که کلاس‌های فرزند، متدهای کلاس والد را بازنویسی (Override) کنند. مثلاً یک کلاس والد "شکل" متد area() دارد، اما کلاس "دایره" و "مربع" هر کدام فرمول متفاوتی برای محاسبه مساحت (Area) در آن متد پیاده می‌کنند.

مثال توکار: تابع len() در پایتون یک مثال عالی از چندریختی است. این تابع برای رشته‌ها تعداد حروف را باز می‌گرداند، اما برای لیست‌ها تعداد آیتم‌ها را. یک تابع واحد، رفتارهای متفاوت بر اساس ورودی!
چرا مفید است؟ چندریختی باعث می‌شود کدهای شما انعطاف‌پذیرتر شوند. شما می‌توانید توابعی بنویسید که با انواع مختلفی از اشیاء کار کنند بدون اینکه نیاز باشد دقیقاً بدانید هر شیء از چه کلاسی است.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تشخیص چندریختی Easy
سوال تمرین

کدام تابعِ توکار پایتون مثالی از چندریختی است که می‌تواند طولِ هم رشته‌ها و هم لیست‌ها را برگرداند؟ (فقط نام تابع را بنویسید).

پاسخ تمرین
PYTHON
len

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.