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

وراثت یا ارث بری یک ویژگی از پایتون است که در کلاس ها انجام می شود.

از طریق وراثت می توانیم یک کلاس ایجاد کنیم که متد ها و ویژگی های کلی و پایه ای داشته باشد.(به این نوع کلاس ها والد گفته می شود.)

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

کلاس والد در پایتون

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

برای مثال یک کلاس به نام cars ایجاد می کنیم که حالت کلی از خودروها است.

در این کلاس برند و امتیاز خودرو وجود دارد.

class Cars:
    def __init__(self, brand, score):
        self.brand = brand
        self.score = score

کلاس فرزند در پایتون

کلاس فرزند جزئی از کلاس والد است که ویژگی های آن را شامل می شود.

برای مثال کلاس motorcycle برخی ویژگی های کلاس cars را دارد بنابراین از کلاس والد ارث بری می کنیم.

class motorcycle(cars):
  pass

یادآوری: دستور pass برای کلاس های خالی به کار میرود تا خطایی نداشته باشیم.

 

استفاده از اشیاء کلاس والد در کلاس فرزند پایتون

با ارث بری از کلاس والد، اشیاء آن در کلاس فرزند قابل استفاده است و با استفاده از تابع ()__init__ می توان از آنها استفاده کرد.

class motorcycle(cars):
  def __init__(self, brand, score):
    cars.__init__(self, brand, score)

نکته:در این کلاسها باید از نام کلاس پایه استفاده کنید.

 

متد ()super در پایتون

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

class motorcycle(cars):
  def __init__(self, brand, score):
    super().__init__(self, brand, score)

افزودن متد به کلاس فرزند در پایتون

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

def report(self):
    print("the", self.brand , "is best car with", self.score)

افزود ویژگی به کلاس فرزند در پایتون

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

در کلاس فرزند این شئ را ایجاد می کنیم و در هنگام فراخوانی کلاس پارامتر آن را می نویسیم.

self.country= coun

خلاصه درس

در این درس با مباحث زیر آشنا شدید:

  • مفهوم وراثت در پایتون
  • کلاس های والد و فرزند
  • افزودن شئ جدید به کلاس
  • ایجاد متد در کلاس

توسعه دهندگان
علیرضا چمنی