دوره‌ها / آموزش پایتون (Python) / ارث‌بری (Python Inheritance)

ارث‌بری (Python Inheritance)

15 دقیقه Article

ارث‌بری: بازتولید هوشمند کد (Inheritance) 🧬👪

ارث‌بری به ما اجازه می‌دهد کلاس جدیدی تعریف کنیم که تمام متدها و ویژگی‌های یک کلاس دیگر را به ارث می‌برد. کلاس اصلی را کلاس والد (Parent) و کلاس جدید را کلاس فرزند (Child) می‌نامیم.

۱. ایجاد کلاس فرزند

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

class Student(Person):
    pass

۲. تابع super()؛ قلب ارث‌بری

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

class Student(Person):
    def __init__(self, name, age, year):
        super().__init__(name, age)
        self.graduationyear = year

x = Student("Mike", 19, 2019)

۳. افزودن ویژگی‌ها و متدهای جدید

کلاس فرزند می‌تواند علاوه بر ویژگی‌های والد، ویژگی‌های منحصر‌به‌فرد خود را هم داشته باشد. در مثال بالا، graduationyear مختص کلاس Student است و کلاس Person آن را ندارد.

بازنویسی متدها (Method Overriding): اگر متدی با نام یکسان هم در والد و هم در فرزند وجود داشته باشد، پایتون متدِ کلاس فرزند را اجرا می‌کند. این به شما اجازه می‌دهد رفتار یک متد عمومی را برای یک فرزند خاص تغییر دهید.
مزیت ارث‌بری: جلوگیری از تکرار کد! اگر 10 نوع کاربر مختلف دارید که همه نام و ایمیل دارند، یک بار کلاس User را تعریف می‌کنید و بقیه از آن ارث می‌برند.

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

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

ارث‌بری از کلاس حیوان Medium
سوال تمرین

کلاسی به نام Animal دارید. کلاس جدیدی به نام Dog بسازید که از Animal ارث‌بری کند. در کلاس Dog متدی به نام bark اضافه کنید که عبارت 'Woof!' را برگرداند.

پاسخ تمرین
PYTHON
class Animal:
  pass

class Dog(Animal):
  def bark(self):
    return 'Woof!'

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

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