مرور فصل

در آخر این فصل شما توانایی استفاده از متد های instance (نمونه) برای انجام محاسبات بر اساس اتریبیوت های نمونه یک آبجکت، استفاده از اتریبیوت های کلاس و نمونه ها برای متمایز کردن بین بقیه اتریبیوت ها، استفاده از متد های استاتیک برای نوشتن فانکشن های کوچک برای ریفکتور کردن کد در کلاس جهت جلوگیری از تکرار کد، استفاده از setter (تخصیص دهنده) های خاصیت ها برای هندل کردن تخصیص مقدار به خاصیت های از قبل محاسبه شده و انجام اعتبارسنجی (validation) و در نهایت ایجاد کلاس هایی که متد ها و اتریبیوت های کلاس های دیگه رو به ارث میبرن رو خواهید داشت.

معرفی

در فصل ۴ - گسترش پایتون: فایل ها، خطاها و رسم نمودار از مباحث پایه رفتیم سراغ نوشتن کد دفاعی و سروکار داشتن با مشکلات احتمالی. در این فصل به بررسی یکی از موارد بنیادی برنامه نویسی شی گرا (OOP)، یعنی کلاس ها میپردازیم. کلاس ها حاوی تعاریف آبجکت هایی هستن که ما باهاشون کار میکنیم. تمام آبجکت هایی که در OOP باهاشون سروکار داریم توسط یک کلاس تعریف شدن، حالا یا توی کد خودتون و یا توی یک کتابخونه پایتون. تا اینجا در این کارگاه ما ازش استفاده کردیم، اما در مورد چگونگی گسترش و شخصی سازی رفتار آبجکت ها صحبت نکردیم. در این فصل اول با آبجکت هایی که باهاشون آشنایی داریم شروع میکنیم و بعدش اونها رو با معرفی مفهوم کلاس ها گسترش میدیم.

احتمالا تا الان حداقل با یک آبجکت string در پایتون کار کردید. اصلا استرینگ دقیقا چیه؟ چه کار هایی میشه باهاش انجام داد؟ آیا کار هایی هست که میخواید با استرینگ انجام بدید اما آبجکت داخلی استرینگ پایتون به شما اجازه نمیده؟ آیا میشه یه جوری رفتار این آبجکت رو شخصی سازی کرد؟ در این فصل به این سوالات با باز کردن مفهوم کلاس ها پاسخ داده میشه. نوشتن کلاس ها دنیایی از کار های مختلف رو برامون ممکن میکنه که میتونیم در اون خیلی شیک و تر و تمیز کد هایی از منابع خارجی با کد های دیگه ترکیب کنیم یا بسته به نیاز های خودمون تغییرشون بدیم

برای مثال فرض کنیم یه کتابخونه خارجی برای مدیریت تقویم ها پیدا کردیم که میخوایم توی اپلیکیشن خودمون ازش استفاده کنیم. حالا اینجا ممکنه نیاز باشه که کلاس های اون کتابخونه رو inherit کنیم (به ارث ببریم!) و متد ها یا خاصیت های اونا رو بسته به نیاز خاص خودمون دستکاری کنیم. پس میتونیم ببینیم که چقدر متد ها بکارمون میان.

کد شما به شدت قابل درک تر و خوانا تر میشه و لاجیک برنامه شما خیلی بهتر با توجه به قاعده DRY یا Do Not Repeat Yourself خلاصه میشه، که بعدا توی فصل این قاعده بررسی میشه.