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

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

 

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

 

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

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

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

class Cat:
	def __init__(self,name,color):
		self.name = name
		self.color = color

cat1 = Cat('kiti','brown')

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

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

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

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

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

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

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

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

 

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

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

ترک شبکه‌های اجتماعی بدون درد و خماری

یه روزی می‌خواستم از خیابون رد بشم که چراغ راهنما سبز شد و باید منتظر قرمز شدنش می‌موندم. یه آقایی هم کنارم هی سعی می‌کرد از خیابون بره اونطرف و نمی‌تونست چون ماشین‌های زیادی بودن و بهش مجال نمی‌دادن. به عنوان یه پیشنهاد بهش گفتم آقا! وایسا تا چراغ بیست ثانیه دیگه قرمز شه بعد میتونی با خیال راحت بری اونطرف. در جواب گفت: ول کن بابا تو این پولی و بدبختی حال رعایت قانون رو ندارم!
کمی فکر کردم و حرفی که اغلب مردم به چنین آدم‌هایی میزنن رو به یاد آوردم. «بی فرهنگ»، «بی تمدن»، «بیشعور» و… . البته ناگفته نماند که من هم داشتم یک بی فلانی را صادر می‌کردم از آنجایی که همه ما متخصص هستیم این کار جبر است. اما فکرش را که کردم دیدم تعاریف مربوط به فرهنگ و تمدن و شعور و… چیزهای دیگری است. من به یک نتیجه رسیدم! مردم نمی‌تونن فکر کنن! نمی‌تونن منطقی باشن! چون ظاهرا فکر می‌کنن که منطق اونها رو از پیشرفت بازمیداره. وقتی اون آقا یه دو دو تا چارتایی بکنه با خودش میبینه که منطقی‌تره تا وایسه و منتظر چراغ قرمز بمونه! ولی خب همونطور که گفتم فکر و منطق بعضی وقتا از سر لجاجت و خیلی چیزهای دیگه لنگ می‌مونه. خود من، اول تابستون رفتم اینستاگرام و توییتر رو نصب کردم!!!

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

به سوی انحراف
بعد از یه ماه مشغول بودن توی اینستاگرام و توییتر یواش یواش از اون سلف برندینگ و… فاصله گرفتم. منم شدم جزو همونایی که می‌گفت روی فلانی کراش دارم و فلانی کراشش با کراش من یکی و … . استوری‌هام همه شدن غذا و سفرهامو شعرهای کوتاه مسخره‌ای که خودم می‌نوشتم و صحبت از جدایی و پوچی دنیا و صبح بخیر هموطن و… . تا بعد یه مدت ارسطو گم شد! منظورم اون ارسطو ورژن قدیمیه‌س. اونی که می‌خواست سلف برندینگ کنه. واقعیت این بود که نمی‌تونستم. از وضعیت خودم ناراضی بودم و تصمیم گرفتم بیام بیرون و اومدم!

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

خب چطوری اومدی بیرون؟؟؟!
خیلی ساده بود. یه سری چیزا هستن که شبکه‌های اجتماعی به شما تحمیل می‌کنن که باور بکنید. مثلا، شما برای فالورهاتون مهم هستید! نظریات شما روی دیدگاه سیاسی رئیس جمهور آمریکا تاثیر خواهد گذاشت! با استفاده از هشتگ می‌تونید زندگی یک گربه را در جنوب غربی تهران نجات دهید! این استوری رو بزار تا طلا ارزون بشه!!! واتتتت؟!
وقتی که به این سوال آخر یعنی واتتتتت؟! رسیدی می‌فهمی که نه! تو فقط یه کالایی یه ابزار برای پول درآوردن بقیه! وقتی یه لایک می‌کنی وقتی ریتوییت می‌کنی و خیلی چیزهای دیگه باعث میشی که سهام شرکت ها بره بالاتر ولی خب نمی‌خوام ریچارد استالمن بازی در بیارم و واقعیت هم اینه که من اینقدر رادیکال نیستم –ریچارد استالمن بودن سْواد می‌خواد- یه لحظه برمی‌گردی و می‌بینی که همه اینا فقط مجازی‌ان! واقعیت ندارن. تو اگه یه هفته هم نباشی هیچکدون از فالورات نمی‌آد به هر دری بزنه و شماره‌ت رو پیدا کنه و بگه وایییی احمد کجایی آقا نیستی و… . یه ماهِ هیچکدوم از شبکه‌های اجتماعی نرفتم و کسی هم براش مهم نبوده فقط می‌بینم که تعداد فالورها روز به روز داره کمتر می‌شه. یه واقعیت دیگه رو هم بگم: رئیس جمهور آمریکا توییت شما به … هم نیست.

جایگزین پیدا کن
یه اپلیکیشن داشتم که بهم می‌گفت چه قدر از زمان‌ت رو روی چه اپلیکیشنی بودی. جالب اینجاست که توییتر ۲ ساعت، اینستاگرام ۱ ساعت و نیم و پینترست ۴۵ دقیقه در طول روز بود. که اگه جمع بکنی میشه ۴ ساعت ۱۵ دقیقه!!! ۴ ساعت و ۱۵ دقیقه!!! ۴ ساعت و ۱۵ دقیقه!!!
– ای بابا ۴ ساعت و ۱۵ دقیقه و کوفت خب ادامه …
خب ادامه هیچی دیگه ۴ ساعت و ۱۵ دقیقه…!!!
با ۴ ساعت میشه خیلی کارا کرد. من این موضوع رو پیدا کردم و توی یه مدت کوتاه تونستم ۵۰ صفحه از کتابم رو ترجمه بکنم، برنامه‌نویسی شئ‌گرا رو تا حد خوبی یاد بگیرم، با جانگو آشنا بشم و یه اپلیکیشن وبلاگی ساده بزنم. ولی خب قراره پیشرفت‌های دیگه‌ای هم باشه.
چند تا سریال خوب رو نگاه کردم. روی زبان انگلیسی کار کردم و تونستم از روزی ۶ ساعت خواب به ۸ ساعت و نیم برسم که این خیلی خوبه چون می‌تونم آرامش بیشتری داشته باشم. واقعا می‌گم خواب خیلی مهمه.
پس برید سمت جایگزین هاتون 😁😍😊