پایتون

جلسه ۵۴: Polymorphism با استفاده از متدها در پایتون

در این درس شما با نحوه پیاده‌سازی Polymorphism به کمک متدها را فراخواهید گرفت.

تا به اینجای کار، ما یادگرفتیم که Polymorphism برای کنترل‌پذیری کدهای ما میتواند مفید باشد. در این درس، یاد میگیریم که چگونه میتوان Polymorphism  ها را به کمک متدها پیاده‌سازی کرد. در درس بعد طریقه پیاده‌سازی به کمک وراثت را میبینیم.

مثال

ما دو شکل را به عنوان کلاس تعریف میکنیم: Rectangle و Circle. این کلاس‌ها متدی به نام getArea دارند که مقدار مساحت را برای آن‌ها بر اساس خصوصیات داده‌شده محاسبه میکند.

class Rectangle():

    # initializer
    def __init__(self, width=0, height=0):
        self.width = width
        self.height = height
        self.sides = 4

    # method to calculate Area
    def getArea(self):
        return (self.width * self.height)


class Circle():
    # initializer
    def __init__(self, radius=0):
        self.radius = radius
        self.sides = 0

    # method to calculate Area
    def getArea(self):
        return (self.radius * self.radius * 3.142)


shapes = [Rectangle(6, 10), Circle(7)]
print("Sides of a rectangle are", str(shapes[0].sides))
print("Area of rectangle is:", str(shapes[0].getArea()))

print("Sides of a circle are", str(shapes[1].sides))
print("Area of circle is:", str(shapes[1].getArea()))

توضیحات

  • در خط ۲۵ ما یک لیستی تعریف کرده‌ایم که شامل دو شی است.
  • اولین شی یک Rectangle با طول ۶ و ارتفاع ۱۰ است و دومین شی یک دایره با شعاع ۷ داریم.
  • هر دو کلاس در خطوط ۱۰ و ۲۱، متد getArea را دارند. اما کدهای آن‌ها و طریقه اجرا متفاوت است. و این چنین میتوان Polymorphism را پیاده‌سازی کرد.
  • متد در خطوط ۲۷ و ۳۰ به صورت همسان فراخوانی شده‌است، اما متدهای مختلفی هستند و کار متفاوتی انجام میدهند. بنابراین ما به Polymorphism  دست پیدا کرده‌ایم.

این کار، یک روش برای پیاده‌سازی Polymorphism بود. در درس بعدی ما یک روش Polymorphism  دیگر به کمک یک مسیر معمول و کارآمد یعنی وراثت ها را معرفی خواهیم کرد.

نوشته های مشابه

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

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

دکمه بازگشت به بالا