معرفی فصل
هدف این فصل این است که با کلاس ( class ) و نمونه ( instance ) و ویژگی ( attribute ) های اشیا (object) آشنا شوید. با instance method ها کار کنید و instance attribute های متناسب هر object را استفاده کنید. با مِتُدهای static توابع utility برای ریفَکتور ( refactor ) کدهای خود بنویسید تا از تکرار( repetition ) بپرهیزید، با بکارگیری property setter ها مقادیر محاسبهشده ( computed properties ) و ارزیابی ( validation ) و ساخت کلاسها را انجام دهید که method ها و attribute های مختلفی را از کلاسهای دیگر به ارث بردهاند ( inherit ).
این فصل در مورد برنامه نویسی شی-گرا یا object-oriented programming (OOP) است!
معرفی فصل
در مثالهای رسم نمودار فصل قبل به مفهومی به اسم آبجکت (شئ یا object ) اشاره کردیم. در این فصل تماما به این موضوع خواهیم پرداخت و با object-oriented programming یا OOP آشنا میشویم. پایهی این فصل را Classها تشکیل میدهند. هر Class شامل تعاریف objectهایی است که از آن تولید میشوند. هر object توسط یک class تعریف شده است. در این دوره به صورت مستقیم و غیر مستقیم از objectهای زیادی استفاده کردهایم اما دقیقا مطرح نشده که بیشتر این objectها چه هستند و چه ویژگیهایی دارند. در این فصل ابتدا به سراغ بعضی از objectهایی میرویم که قبلا از آنها استفاده کرده ایم تا درک بهتری از objectها و classها پیدا کنید.
مثلا stringهایی که با آنها کار کردهایم همگی از نوع string object پیشفرض در Python هستند. ولی string object پیشفرض پایتون یعنی چه؟ چه کارهایی میتوان با این string objectها انجام داد؟ پایتون به ما اجازهی انجام چه کارهایی را با string objectهایش نمیدهد؟ میشود رفتار این string object ها را تغییر داد؟ دنیای classها بسیار بزرگ است و در این فصل به سراغ بسیاری از ویژگیهای مهم و اصلی classها میرویم. درک این فصل پایهی ورود شما به کاربردهای واقعی پایتون است!
موضوع بعدی این فصل نیز inheritance یا وراثت است! این ویژگی به ما اجازه میدهد تا کلاسهایی بسازیم که ویژگیهایی از کلاسهای دیگر را به ارث میبرد.
یکی از موضوعات دیگری که در لابهلای مباحث OOP به آن خواهیم پرداخت نیز encapsulation یا کپسولهسازی کدها و منطق برنامه از طریق شیگرایی است که به آن اصل عدم تکرار خود یا Do Not Repeat Yourself یا DRY نیز گفته میشود.
همچنین انتهای این فصل را با اشاره به 3 مفهوم سطح بالای زیر به اتمام میرسانیم تا بتوانید خودتان پس از مطالعهی این فصل در زمینهی object-oriented programming پیشرفتهتر نیز مطالعات خود را ادامه دهید:
- اصول SOLID برای طراحی object-oriented design (OOD)
- کلاسهای پایهی انتزاعی یا ABC یا Abstract Base Class
- پروتوکل یا Protocol