💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Verahram
abstract method
محمدعلی رضا حل شده توسط محمدعلی رضا

سلام دوستان

میدونیم که abstract method متدی هست که در یک کلاس abstract تعریف میشه و هیچ بدنه ای نداره.باید در subclass‌ها override بشه وگرنه به ارور میخوریم.سوال من این هست که دلیل و منطق استفاده از abstract method چیه؟چرا باید یک متد رو در کلاس والد تعریف کنیم و خالی بگذاریم وقتی قراره بدنه اون در کلاس‌های فرزند تعریف بشه؟

سلااااااااااااااااااااام

من در موردش ۲ تا سرچ کردم و حدود ۱۰ الی ۱۵ تا لینک رو باز کردم و خوندم.

سرچ هایی که کردم:

python abstract method

python why use abstract method

فک کردم شاید تو اینترنت نکته جدیدی در مورد abstract و abstract method یاد بگیرم ولی نکته جدیدی پیدا نکردم و فقط اهمیتش و استفاده اش رو بیشتر درک کردم.

 

چرا از abstract class و abstract method استفاده کنیم؟

- An abstract class can be considered as a blueprint for other classes.

یک abstract class رو میشه بعنوان blueprint ای (به نقشه ساختمون میگن blueprint که با استفاده ازش ساختمون رو میسازن) برای کلاس‌های دیگه در نظر گرفت

 

- When we want to provide a common interface for different implementations of a component, we use an abstract class. 

وقتی ما میخواهیم یه interface عمومی ایجاد کنیم برای پیاده سازی‌های مختلف یک کامپوننت، ما از یه abstract class استفاده میکنیم.

By defining an abstract base class, you can define a common Application Program Interface(API) for a set of subclasses.

با تعریف یه abstract class پایه، شما میتونید یه API عمومی برای یه دسته از زیر کلاس‌ها (subclasses) تعریف کنید.

(توضیح اینکه interface چیه؟ یا کامپوننت چیه؟ رو لطفا سرچ کنید. برای تعریف interface چند تا لینک پایین میتونن مفید باشن.)

Interfaces in Object Oriented Programming Languages

What is the definition of “interface” in object oriented programming

Interfaces in Java

 

- This capability is especially useful in situations where a third-party is going to provide implementations, such as with plugins

این قابلیت (abstract class, abstract method) مخصوصا در مواقعی که ابزار شخص ثالث ای قراره پیاده سازی ای رو براتون فراهم کنه، کاربرد خوبی داره.

 

- can also help you when working in a large team or with a large code-base where keeping all classes in your mind is difficult or not possible. 

این قابلیت (abstract class, abstract method)، همچنین وقتی دارید تو یه تیم بزرگ یا با یه عالمه کد کار میکنید، که به یاد داشته همه کلاس‌ها تو حافظه تون سخته یا غیر ممکنه، کمک تون میکنه.

 

- استفاده بجا ازش باعث میشه که کدها و پروژه‌ها تون تمیز‌تر باشن و نگهداری و توسعه شون برای شما و هم تیمی‌ها تون آسون‌تر بشه.

 

امیدوارم تونسته باشم راهنمایت کنم. اگر باز سوالی داشتی در خدمتم.

زیاد کد بزن، زیاد کد بخون و زیاد سرچ کن :)

 

منابع:

Abstract Classes in Python

How to Write Cleaner Python Code Using Abstract Classes

Abstract Base Classes in Python: Fundamentals for Data Scientists

Implementing an Interface in Python (توصیه نمیکنم بخونیش ممکنه سر در گمت کنه)
 

بهترین پاسخ
محمدعلی رضا ۱۹ خرداد ۱۴۰۰، ۰۴:۱۸