لطفا صبرکنید...

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

آموزش پایتون-کدنویسم

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

وراثت در پایتون یکی از مفاهیم بنیادی برنامه‌نویسی شیءگرا (OOP) در این زبان است که به شما امکان می‌دهد کلاس‌های جدیدی را بر اساس کلاس‌های موجود (کلاس‌های پایه) ایجاد کنید. کلاس‌های مشتق شده ویژگی‌ها و متدهای کلاس پایه را به ارث می‌برند و می‌توانند ویژگی‌ها و متدهای خود را نیز اضافه کنند.

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

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

1. ایجاد کلاس مشتق شده

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

Python
class Person:
  """کلاس Person برای نمایش اطلاعات افراد"""

  def __init__(self, name, age):
    """متد سازنده برای مقداردهی ویژگی‌های نام و سن"""
    self.name = name
    self.age = age

  def greet(self):
    """متدی برای چاپ سلام و نام و سن شخص"""
    print(f"سلام، من {self.name} هستم و {self.age} سال سن دارم.")

class Student(Person):
  """کلاس Student برای نمایش اطلاعات دانش‌آموزان"""

  def __init__(self, name, age, major):
    super().__init__(name, age)
    self.major = major

  def study(self):
    print(f"{self.name} در حال مطالعه رشته {self.major} است.")

student1 = Student("علی", 30, "علوم کامپیوتر")
student1.greet()  # سلام، من علی هستم و 30 سال سن دارم.
student1.study()  # علی در حال مطالعه رشته علوم کامپیوتر است.

در این مثال:

  • Student کلاس مشتق شده از کلاس پایه Person است.
  • __init__ متد سازنده کلاس Student است که ویژگی major را نیز مقداردهی می‌کند.
  • study متدی است که برای چاپ رشته تحصیلی دانش‌آموز استفاده می‌شود.
  • super() متدی برای دسترسی به متدهای کلاس پایه است.

2. دسترسی به ویژگی‌ها و متدهای کلاس پایه

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

Python
print(student1.name)  # علی
print(student1.age)  # 30
student1.greet()  # سلام، من علی هستم و 30 سال سن دارم.

3. استفاده از super()

متد super() برای دسترسی به متدهای کلاس پایه از کلاس مشتق شده استفاده می‌شود.

Python
class Employee(Person):
  """کلاس Employee برای نمایش اطلاعات کارمندان"""

  def __init__(self, name, age, company):
    super().__init__(name, age)
    self.company = company

  def work(self):
    print(f"{self.name} در حال کار در شرکت {self.company} است.")

employee1 = Employee("سارا", 25, "دیجی‌کالا")
employee1.greet()  # سلام، من سارا هستم و 25 سال سن دارم.
employee1.work()  # سارا در حال کار در شرکت دیجی‌کالا است.

در این مثال:

  • Employee کلاس مشتق شده از کلاس پایه Person است.
  • __init__ متد سازنده کلاس Employee است که ویژگی company را نیز مقداردهی می‌کند.
  • work متدی است که برای چاپ محل کار کارمند استفاده می‌شود.
  • super().__init__(name, age) از متد سازنده کلاس پایه برای مقداردهی ویژگی‌های name و age استفاده می‌کند.

4. نکات مهم

  • از وراثت برای ایجاد سلسله مراتب کلاس و سازماندهی کد خود به طور منطقی استفاده کنید.
  • از وراثت برای به اشتراک‌گذاری کد بین کلاس‌های مختلف و جلوگیری از تکرار کد استفاده کنید.
  • از وراثت برای ایجاد رابط‌ها (interfaces) و انتزاع (abstraction) در برنامه خود استفاده کنید.
  • از چند وراثتی (multiple inheritance) با احتیاط استفاده کنید، زیرا می‌تواند پیچیدگی را به برنامه شما اضافه کند.
  • قبل از استفاده از وراثت، مطمئن شوید که رابطه بین کلاس‌های پایه و مشتق شده به درستی تعریف شده است.

5. منابع مفید:

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

codenevisam وب‌سایت

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