کلاس ها در پایتون نقش مهمی را در ساختاردهی و بهینه سازی کدها در برنامه نویسی ایفا می کنند.
در دنیای فناوری امروزی برنامه نویسی شی گرا یا برنامه نویسی تحت کلاس اولین گزینه موردتوجه در جذب توسعه دهندگان است.
به همین دلیل شناخت ساختار و روش عملکرد کلاس ها اهمیت زیادی دارد.
در این مقاله به مفهوم کلاس در برنامه نویسی پایتون و مزایای آن خواهیم پرداخت.
برای کسب اطلاعات بیشتر تا انتها با ما همراه باشید.
1# برنامه نویسی شی گرا در پایتون
برنامه نویسی شی گرا (Object-Oriented programming یا OOP) با استفاده از کلاس در پایتون یک الگوی برنامه نویسی است که
ابزاری را برای ساختاربندی برنامه ها فراهم می کند تا ویژگی ها و رفتارها در اشیا جمع شوند.
ما می توانیم یک کلاس را به عنوان یک طرح (نمونه اولیه) از یک خانه در نظر بگیریم که
شامل تمام جزئیات در مورد طبقات، درها، پنجره ها و غیره است.
بر اساس این توصیفات می توانیم خانه را بسازیم.
خانه در واقع یک شی است.
همان طور که خانه های زیادی را می توان از طرح یک خانه ساخت، ما نیز می توانیم اشیای زیادی را از یک کلاس ایجاد کنیم.
یک شی نمونه ای از یک کلاس نیز هست و فرآیند ایجاد این شی را نمونه سازی می نامند.
به عنوان مثال، یک شی می تواند شخصی را با ویژگی هایی مانند نام، شماره ملی، سن، کد پستی و رفتارهایی نظیر صحبت کردن، راه رفتن و دویدن نشان دهد.
یا می تواند نشان دهنده یک ایمیل با ویژگی هایی مانند لیست گیرندگان، موضوع، متن پیغام و کارهایی مانند افزودن پیوست و ارسال باشد.
به عبارت دیگر، برنامه نویسی شی گرا و استفاده از کلاس در پایتون، رویکرد و روشی برای مدل سازی مشابه ساختارهای دنیای واقعی است.
مانند روابط بین دانشجویان و استادان، سازمان ها و کارمندان و غیره.
برنامه نویسی شی گرا موجودیت های دنیای واقعی را به عنوان اشیای نرم افزاری مدل می کند که
دارای برخی داده های مرتبط با آن ها هستند و می توانند عملکردهای خاصی را انجام دهند.
2# مفهوم کلاس در پایتون (Python Classes)
یک راه عالی برای مدیریت پذیرتر کردن و نگهداری بیشتر کدها، استفاده از کلاس در پایتون است.
از کلاس ها برای ایجاد ساختارهای داده تعریف شده توسط کاربر استفاده می شود.
کلاس یک نوع تابع در پایتون به نام متد (Method) را تعریف می کنند که رفتار و اعمال اشیا را با داده های خود مشخص می کنند.
کلاس طرحی است برای این که یک چیزی چگونه باید تعریف شود.
در واقع یک کلاس حاوی هیچ داده ای نیست.
به عبارت دیگر، کلاس مانند یک فرم یا پرسش نامه خام است و شی، مانند فرمی است که توسط شخصی پر شده است.
درست مانند بسیاری از افراد که می توانند همان فرم را با اطلاعات منحصر به فرد خود پر کنند،
اشیا و نمونه های زیادی را نیز می توان از یک کلاس ایجاد کرد.
کلاس ها مزایای بسیار زیادی را در برنامه نویسی و توسعه نرم افزار به همراه دارند که
زبان پایتون از این مزیت به بهترین شکل استفاده کرده است.
به همین دلیل پایتون یکی از محبوب ترین زبان های برنامه نویسی در سطح جهانی است.
3# تعریف کلاس در پایتون
همان طور که تعریف تابع در پایتون با کلمه کلیدی def شروع می شود، تعریف کلاس نیز با کلمه کلیدی class شروع می شود.
اولین رشته داخل کلاس docstring نام دارد و توضیح مختصری از کلاس می دهد.
اگرچه اجباری نیست، اما به شدت توصیه می شود.
در زیر نحوه تعریف یک کلاس ساده در زبان برنامه نویسی پایتون را مشاهده می کنید:
class ClassName:
”’This is a docstring. I have created a new class”’
Statement-1
.
.
.
Statement-N
به عنوان یک مثال بسیار ساده از یک کلاس، تابع زیر را بررسی می کنیم.
class SAMPLE:
X = 5
اسم این کلاس در پایتون SAMPLE است و در آن به X مقدار 5 داده شده است.
درصورتیکه قصد استفاده از این کلاس و ساخت یک شی جدید را داشته باشیم کافی است از دستور زیر استفاده کنیم.
P1 = SAMPLE()
4# مزایای استفاده از کلاس در پایتون
- کلاس ها وسیله ای برای جمع بندی داده ها و بهبود عملکرد را فراهم می کنند.
- در مقایسه با سایر زبان های برنامه نویسی، کلاس در پایتون با حداقل نحو (syntax) اضافه می شوند.
- کلاس های پایتون تمام ویژگی های استاندارد برنامه نویسی شی گرا را ارائه می دهند.
به عنوان مثال در مکانیزم وراثت، پایتون به کلاس های مشتق شده اجازه می دهد اجرای بخش هایی را از کلاس های پایه خود لغو کنند؛
یعنی در کلاس فرزند (Child Class) الزامی برای اجرای تمام بخش های کلاس والد (Parent Class) وجود ندارد.
علاوه بر این ها، چهار مزیت اصلی در استفاده از کلاس در پایتون وجود دارند که عبارتند از:
1-4# کپسوله سازی (Encapsulation)
مفهوم کپسوله سازی یا OOP Encapsulation به ترکیب داده ها و عملیات مربوط به پردازش آن داده ها نظیر توابع و سایر محاسبات، در یک واحد مشخص شده اشاره دارد.
کپسوله سازی اغلب در قالب کلاس در پایتون استفاده می شود.
به عبارت دیگر یک کلاس نمونه ای از کپسوله سازی در علوم کامپیوتر است که
شامل داده ها و روش هایی است که در یک واحد مجزا جمع آوری شده اند.
کپسوله سازی ممکن است به مکانیزمی برای محدود کردن دسترسی مستقیم به برخی اجزای یک شی نیز اشاره داشته باشد.
به طوری که کاربران نتوانند به مقادیر همه متغیرهای یک شی خاص دسترسی داشته باشند.
کپسوله سازی را می توان برای پنهان کردن داده ها و توابع آن ها یا سایر روش های مرتبط با یک کلاس یا شی استفاده کرد؛
یعنی بخش های مربوط به یک کلاس یا شی را در حالات دیگر غیر قابل دسترسی کرد.
2-4# انتزاع (Abstraction)
یک برنامه نویس از فرآیند انتزاع برای کاهش پیچیدگی و افزایش کارایی استفاده می کند.
انتزاع در برنامه نویسی شی گرا یا کلاس در پایتون، همه داده های مربوط به یک شی را به جز داده های مورد نظر پنهان می کند.
برای درک بهتر به این مثال توجه کنید.
تهیه قهوه با دستگاه قهوه ساز نمونه خوبی از انتزاع است.
شما باید بدانید که چگونه از دستگاه قهوه ساز خود برای تهیه قهوه استفاده کنید؛
یعنی باید آب و دانه های قهوه را در قهوه ساز ریخته و نوع قهوه ای را که می خواهید، انتخاب کنید.
چیزی که شما نیازی به دانستن آن ندارید این است که
دستگاه قهوه ساز در داخل خود چگونه کار می کند تا یک فنجان قهوه خوشمزه آماده کند.
به عنوان مثال، نیازی نیست دمای ایده آل آب یا مقدار قهوه آسیاب شده مورد نیاز را بدانید.
شخص دیگری قبلا به این موارد پرداخته است.
این دستگاه قهوه سازی به عنوان یک انتزاع عمل می کند و تمام این جزئیات را پنهان می کند.
شما فقط با یک رابط ساده تعامل دارید که نیازی به دانشی در مورد پیاده سازی داخلی ندارد که این مفهوم انتزاع یا Abstraction است.
3-4# وراثت (Inheritance)
از طریق وراثت یک کلاس می تواند ویژگی ها و یا متدها را از کلاس دیگر به ارث ببرد.
این مزیت کلاس در پایتون برای استفاده مجدد از کدها، ساختاردهی و بهینه سازی کدها کمک شایانی می کند.
4-4# چندریختی (Polymorphism)
چندریختی به معنای داشتن اشکال متعدد است.
به زبان ساده، چندریختی را می توان به عنوان توانایی نمایش یک پیام به بیش از یک شکل تعریف کرد.
به عنوان مثال در زندگی واقعی، یک فرد به صورت همزمان می تواند ویژگی های متفاوتی مانند یک پدر، یک شوهر یا یک کارمند را داشته باشد.
بنابراین یک فرد رفتار متفاوتی در موقعیت های مختلف دارد.
این شرایط و ویژگی ها چندریختی نام دارد.
چندریختی یکی از ویژگی های مهم برنامه نویسی شی گرا و کلاس در پایتون است.
چندریختی به ما اجازه می دهد تا یک عمل واحد را به روش های مختلف انجام دهیم.
به عبارت دیگر، چندریختی به شما این امکان را می دهد که یک رابط تعریف کنید و چندین پیاده سازی داشته باشید.
نظرتون درباره این مقاله چیه؟
ما رو راهنمایی کنید تا اون رو کامل تر کنیم و نواقصش رو رفع کنیم.
توی بخش دیدگاه ها منتظر پیشنهادهای فوق العاده شما هستیم.
ممنون از این مقاله کاربردی
سلام همراه گرامی
سپاس از محبت شما