شئ‌گرایی در پایتون به سادگیِ … (کلاس) ۱

خب خوش اومدید به دوره آموزشی متنی شئ‌گرایی در پایتون به سادگیِ …؛ توی همین قسمت اول می‌خوایم یه ذره راجع به شئ‌گرایی به صورت بیسک و خیلی پایه بگم، چون واقعا وارد جزئیات شدن در رابطه با تئوریات شئ‌گرایی و اینکه دقیقا چه چیزهایی پشتش هست با توضیحات خیلی به دل نمی‌چسبه، حداقل برای من اینطوریه، به همین خاطر می‌خوام یه ذره اول کار ساده بهتون بگم که ماجرا چیه و بعدش بریم سراغ کدنویسی! پس امیدوارم کدنویسی خوبی داشته باشیم … خواستم بگم Good Coding نمی‌دونم چرا اینجوری شد!! به هر حال بریم سراغ مباحث!

 

خب ببینید شئ‌گرایی زیر شاخه‌ای از پارادایم‌های برنامه‌نویسی هستش ولی خب بزارید خیلی ساده بگم، شئ‌گرایی یه شیوه برای سازمان‌ دادن به داده‌های یه نرم افزار یا یه راه‌حله! یعنی چی؟ یعنی اینکه آقا ما می‌خوایم به کدهامون یه ذره ترتیب بدیم. قبلا از خط یک شروع می‌کردیم کد می‌نوشتیم و همینطوری تا آخر اما حالا می‌خوایم یه ذره مرتب‌تر کارها رو انجام بدیم. خب شئ‌گرایی یه روش برای مرتب کردن کدها هستش. روش‌های دیگه‌ای هم هست که ما فعلا بهشون کار نداریم. پس این از این. اگه می‌خواید راجع به تئوریات این قضیه خیلی سر در بیارید و بفهمید که چی به چیه می‌تونید به صفحه ویکی‌پدیا شئ‌گرایی مراجعه کنید اونجا پر از مثال و توضیحاته ولی خب پیشنهاد میکنم که با من همراه باشید.

 

خب نقطه کانونی شئ‌گرایی کلاس‌ها و آبجکت یا شئ‌ها هستند ولی خب اینا چی‌ان؟

کلاس رو مثل یه کتاب نگاه کنید که عنوان کتاب نوشته که توی این کتاب چی وجود داره پس یه کلاس به ما کمک می‌کنه تا آبجکت‌های داخل برنامه‌مون رو شناسایی کنیم. مثلا من می‌گم کلاس حیوانات پس آبجکت‌های داخل قراره یه سری جک و جونور باشه. البته یه کتاب ممکنه سر فصلهای مختلفی داشته باشه به همین خاطر شئ‌های مختلفی هم خواهیم داشت.

برای ساخت کلاس ما از class استفاده می‌کنیم. بعدش یه اسم براش می‌زاریم که ترجیحا حرف اولش باید بزرگ باشه و بعدش بحث فاصله گذاری برای ایجاد بلاک کد! این یه مثال ساده است از این حالت:

توی کد بالا یه کلاس با نام Cat ایجاد کردیم و یه سری خاصیت به کلاسمون دادیم. مثلا اسم گربه و رنگ گربه.

حالا خب یه سری موارد عجیب و غریب دیگه هم وجود داره، مثل __init__ و self اینا چی‌ان! خب …

__init__ یه جور تابعه … ولی یه چیزی بگم … وقتی یه تابع توی یه کلاس استفاده می‌شه دیگه اسمش تابع نیست … بهش می‌گیم متد یا Method … ولی خب در نهایت مهم اینه که قراره یه کاری برامون بکنه. __init__ مهمترین متدی هستش که توی کار با کلاس باید ازش استفاده بکنیم. وقتی یه نمونه از کلاس می‌سازیم از این متد استفاده می‌شه.

خب __init__ به چه دردی می‌خوره؟ توی زبون‌های دیگه بجای این می‌گن یه سازنده یا constractor می‌خوایم بسازیم. حالا این سازنده چیه؟

هر کلاسی برای خودش یه سری Attributes داره، در واقع یه سری داده است که یه کلاس باهاشون کار می‌کنه. برای مثال یه کلاس به اسم گربه داریم که ویژگی‌ها‌ش اسم و رنگشه، خب اینا به صورت __init__ قرار داده میشه.

حالا Self چیه. Self نماینده یه کلاس برای یه نمونه است. وقتی می‌گیم Self.name یعنی یه نمونه اسمش رو به ما بده. پس Self ارجاعی است از یه نمونه به یه کلاس اصلی.

نمونه چیه؟! خیلی پیچیده شد :))) می‌تونیم از کلاس‌ها‌مون نمونه بگیریم. یعنی چی؟ فکرش رو بکنید که می‌خوایم صد تا کتاب بنویسیم که همه این کتاب‌ها باید یه فونت مشخص برای عنوان‌شون داشته باشن، یه لایه‌بندی منحصر به فرد برای صفحه داشته باشن و… خب پس یه استایل کلی می‌نویسیم و می‌گیم تمام کتاب‌ها از این پیروی کنن، توی این حالت اون استایل کلی میشه class شما و اون کتاب‌های دیگه هر کدوم میشن یه نمونه از کلاس. حالا البته کتاب‌ها می‌تونن ویژگی‌های منحصر به فردی هم داشته باشن که راجع به اونا صحبت می‌کنیم.

برگردیم به مثال گربه … همه گربه‌ها یه اسم دارن و یه رنگ … خب پس به یه سری نمونه احتیاج داریم. در واقع self ارجاعی است به اون نمونه اصلی.

 

فعلا همین کافیه بحث متدها و… رو بزاریم برای بخش دومش!

موسیقی این مطلب هم خسرو خوبان از 127 بند

منتشرشده توسط

ارسطو عباسی

یه نویسنده، وبلاگ‌نویس و توسعه‌دهنده خودآموخته‌ام. کسی که به هنر، برنامه‌نویسی، علوم، فلسفه، ریاضیات، ادبیات و مسافرت خیلی علاقه داره و هر روز سعی می‌کنه که چیزهای جدیدی رو یاد بگیره.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *