Python – وراثت (Inheritance)

وراثت در پایتون

وراثت (Inheritance) به شما این امکان را می‌دهد که یک کلاس تعریف کنید که همه ویژگی‌ها و متدهای یک کلاس دیگر را به ارث می‌برد.

  • کلاس والد: کلاسی که از آن وراثت گرفته می‌شود (کلاس پایه).
  • کلاس فرزند: کلاسی که وراثت را از کلاس دیگر به دست می‌آورد (کلاس مشتق).

ایجاد یک کلاس والد

هر کلاسی می‌تواند به عنوان کلاس والد تعریف شود. به‌سادگی از class استفاده می‌کنید.

مثال:

ایجاد یک کلاس به نام Person با ویژگی‌های firstname و lastname و یک متد به نام printname:

class Person:
    def __init__(self, fname, lname):
        self.firstname = fname
        self.lastname = lname

    def printname(self):
        print(self.firstname, self.lastname)

# ایجاد شیء از کلاس Person
x = Person("John", "Doe")
x.printname()  # Output: John Doe

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

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

مثال:

ایجاد کلاس Student که ویژگی‌ها و متدهای کلاس Person را به ارث می‌برد:

class Student(Person):
    pass

# ایجاد شیء از کلاس Student و استفاده از متد وراثت گرفته‌شده
x = Student("Mike", "Olsen")
x.printname()  # Output: Mike Olsen

اضافه کردن تابع __init__() به کلاس فرزند

با اضافه کردن تابع __init__() به کلاس فرزند، می‌توان ویژگی‌های اضافی و دیگر عملیات‌های لازم را در زمان ایجاد شیء تعریف کرد.

مثال:

اضافه کردن تابع __init__() به کلاس Student:

class Student(Person):
    def __init__(self, fname, lname):
        Person.__init__(self, fname, lname)

استفاده از super() برای فراخوانی تابع __init__() والد:

استفاده از تابع super() به طور خودکار متدها و ویژگی‌ها را از کلاس والد به ارث می‌برد:

class Student(Person):
    def __init__(self, fname, lname):
        super().__init__(fname, lname)

اضافه کردن ویژگی‌ها به کلاس فرزند

می‌توانید ویژگی‌های جدید به کلاس فرزند اضافه کنید.

مثال:

اضافه کردن ویژگی graduationyear:

class Student(Person):
    def __init__(self, fname, lname, year):
        super().__init__(fname, lname)
        self.graduationyear = year

x = Student("Mike", "Olsen", 2019)
print(x.graduationyear)  # Output: 2019

اضافه کردن متدها به کلاس فرزند

می‌توانید متدهای جدید به کلاس فرزند اضافه کنید.

مثال:

اضافه کردن متد welcome به کلاس Student:

class Student(Person):
    def __init__(self, fname, lname, year):
        super().__init__(fname, lname)
        self.graduationyear = year

    def welcome(self):
        print(f"Welcome {self.firstname} {self.lastname} to the class of {self.graduationyear}")

x = Student("Mike", "Olsen", 2019)
x.welcome()  # Output: Welcome Mike Olsen to the class of 2019

نکات مهم:

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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.