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

python inheritance tutorial
20 آبان 1403

درک ارث‌بری در پایتون

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

در ادامه می‌خواهیم مثالی ساده را بررسی کنیم تا بهتر با نحوه عملکرد ارث‌بری در پایتون آشنا شویم. فرض کنید کلاس پایه‌ای به نام Animal داریم که دارای متدی به نام make_sound است. حال می‌خواهیم برای حیوانات خاصی مثل گربه و سگ کلاس‌های مجزا تعریف کنیم که بتوانند صدای خود را تولید کنند.

مثالی کاربردی از ارث‌بری در پایتون

در این بخش به بررسی نحوه تعریف کلاس‌ها با استفاده از ارث‌بری می‌پردازیم:

class Animal:
    def make_sound(self):
        print("Some sound")

class Dog(Animal):
    def make_sound(self):
        print("Bark")

class Cat(Animal):
    def make_sound(self):
        print("Meow")

توضیح خط به خط کد بالا:

class Animal:
تعریف کلاس پایه Animal است. این کلاس دارای یک متد است.

def make_sound(self):
تعریف متدی است که صدای عمومی تولید می‌کند. این متد بعدها در کلاس‌های فرزند بازنویسی می‌شود.

print("Some sound")
دستور print که صدای عمومی را چاپ می‌کند. جایگزینی این صدای عمومی با صدای خاص‌تر در کلاس‌های فرزند انجام می‌شود.

class Dog(Animal):
تعریف کلاس Dog که از Animal ارث‌بری می‌کند.

def make_sound(self):
بازنویسی متد make_sound مخصوص کلاس Dog که با دستور print("Bark") صدای سگ را تولید می‌کند.

class Cat(Animal):
تعریف کلاس Cat که از Animal ارث‌بری می‌کند.

def make_sound(self):
مشابه Dog، اینجا هم متد make_sound برای کلاس Cat بازنویسی می‌شود و صدای گربه را تولید می‌کند.

سوالات متداول

؟

چطور یک کلاس فرزند تعریف کنیم که از یک کلاس والد ارث‌بری کند؟

؟

چرا نیاز به بازنویسی متدها در کلاس‌های فرزند داریم؟

؟

آیا می‌توان از چند کلاس والد ارث‌بری کرد؟