inheritance

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/12
  • تعداد بازدید: 19

وراثت (Inheritance) در پایتون چیست؟

وراثت یکی از اصول مهم برنامه‌نویسی شی‌گرا است که به شما اجازه می‌دهد یک کلاس جدید (کلاس فرزند یا subclass) بسازید که ویژگی‌ها و رفتارهای یک کلاس دیگر (کلاس والد یا superclass) را به ارث ببرد و در عین حال بتواند قابلیت‌های جدید اضافه کند یا رفتارهای والد را تغییر دهد.

چرا وراثت مهم است؟

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

ساختار کلی وراثت در پایتون
class ParentClass:
    # ویژگی‌ها و متدهای کلاس والد
    pass

class ChildClass(ParentClass):
    # این کلاس، کلاس والد را به ارث می‌برد
    pass
مثال ساده از وراثت
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        return "Some sound"

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

dog = Dog("Buddy")
cat = Cat("Kitty")

print(dog.name)    # خروجی: Buddy
print(dog.speak()) # خروجی: Woof!
print(cat.name)    # خروجی: Kitty
print(cat.speak()) # خروجی: Meow!

در این مثال:

  • کلاس Animal والد است و ویژگی name و متدی به نام speak دارد.
  • کلاس‌های Dog و Cat از Animal ارث می‌برند و متد speak را به روش خودشان بازتعریف (override) می‌کنند.

 

مزایای وراثت
  • کد کمتر و خواناتر: با استفاده از وراثت می‌توانید کدهای تکراری را حذف کنید.
  • سازماندهی بهتر: سلسله مراتب کلاس‌ها مدل‌سازی منطقی‌تر و قابل فهم‌تری ایجاد می‌کند.
  • قابلیت گسترش: می‌توانید کلاس‌های جدید بسازید که رفتارهای پایه را حفظ کنند و در عین حال قابلیت‌های جدید اضافه کنند.
وراثت چندگانه

پایتون اجازه می‌دهد یک کلاس از چند کلاس والد به طور همزمان ارث ببرد:

class Flyer:
    def fly(self):
        return "I can fly!"

class Swimmer:
    def swim(self):
        return "I can swim!"

class Duck(Flyer, Swimmer):
    pass

d = Duck()
print(d.fly())  # خروجی: I can fly!
print(d.swim()) # خروجی: I can swim!

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

ثبت دیدگاه


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

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.