2-وراثت : یک سلسله مراتب میان کلاسها در سیستمهای شی گرا است . وراثت تشبیهی از دنیای واقعی وراثت موجود است ، کلاس فرزند می تواند خصوصیات کلاس پدر را به ارث ببرد.
3-چند شکلی بودن : یعنی اینکه یک موجودیت ، دارای اشکال مختلفی باشد. و یا به تعبیری با استفاده از یک نام واحد بتوان رفتارهای مختلفی را در شرایط مختلف آن هم بصورت خودکار انتظار داشت .
3-چند شکلی بودن : یعنی اینکه یک موجودیت ، دارای اشکال مختلفی باشد. و یا به تعبیری با استفاده از یک نام واحد بتوان رفتارهای مختلفی را در شرایط مختلف آن هم بصورت خودکار انتظار داشت .
🤩1
برای درک دو مورد بالا به شکل زیر دقت کنید ، ما یک مجموعه حیوانات داریم خوب همه آنها حیوان هستند ، پس می توان یک کلاس والد یا پدر به نام حیوان داشته باشیم که بقیه کلاسها مانند ، شیر ، سگ و گربه و غیره از آن مشتق شده باشند یا به تعبیری از آن ارث بری می کنند یعنی کلاس شیر باید خاصیت کلاس حیوان را به ارث ببرد .
پس هر شیری یا هر گربه ای و غیره مطابق شکل بالا برخی خصوصیا خود را از کلاس حیوان به ارث می برد.
در واقع وقتی می گوییم کلاس شیر از کلاس حیوان ارث بری می کند یعنی ابتدا شیر تمام خصوصیت حیوانی را می گیرد (طبق اصل وراثت ) و سپس خصوصیات منحصر به فرد خود را نیز دارد ، علاوه بر این ممکن است برخی موجودیتهای حیوانی مشترک برای شیر باید باز تعریف شود (طبق اصل چند ریختی )
اما می دانیم که همه این حیوانات دارای خصوصیات مشترک اما با رفتار های متفاوت است ، مثلا بانگ می زنند و یا به تعبیری صدا تولید می کنند ، اگر چه این عمل با نام تولید صدا در تمام این حیوانات مشترک است ، اما هر کدام از آنها دارای ویژگی منحصر به فردی می باشد ، مثلا صدای سگ با صدای گربه متفاوت است . پس ما در اینجا در کلاس هر کدام از این حیوانات باید رفتار تولید صدا را برای هر کدام از این حیوانات باز تعریف کنیم .
در واقع وقتی می گوییم کلاس شیر از کلاس حیوان ارث بری می کند یعنی ابتدا شیر تمام خصوصیت حیوانی را می گیرد (طبق اصل وراثت ) و سپس خصوصیات منحصر به فرد خود را نیز دارد ، علاوه بر این ممکن است برخی موجودیتهای حیوانی مشترک برای شیر باید باز تعریف شود (طبق اصل چند ریختی )
اما می دانیم که همه این حیوانات دارای خصوصیات مشترک اما با رفتار های متفاوت است ، مثلا بانگ می زنند و یا به تعبیری صدا تولید می کنند ، اگر چه این عمل با نام تولید صدا در تمام این حیوانات مشترک است ، اما هر کدام از آنها دارای ویژگی منحصر به فردی می باشد ، مثلا صدای سگ با صدای گربه متفاوت است . پس ما در اینجا در کلاس هر کدام از این حیوانات باید رفتار تولید صدا را برای هر کدام از این حیوانات باز تعریف کنیم .
> > > آموزش زبان برنامه نویسی پایتون از 0 تا 100
> > > قسمت سیزدهم
با عرض سلام و خسته نباشید.
خوب در قسمت قبل به تعریف یک سری نکات از توابع در پایتون پرداختیم و یک تمرین هم دادیم.
متاسفانه تمام دوستانی که تمرین رو حل کردن و جواب رو برای من فرستادند اشتباه حل کرده بودند.
دوستانی که نتونستن جواب درستی به سوال بدن همون کسانی هستند که حرف من رو در مورد این که "تمرین کردن خیلی مهمه" جدی نگرفتن.
قبلا هم گفتم که با حفظ کردن آموزشها شما یک برنامه ساده هم نمیتونید بنویسید (چه زبان پایتون و چه هر زبان دیگه ای) و نیاز دارید هر چیزی یاد میگیرید روش تمرین کنید.
قرار شد در این قسمت تابع رو تا حدودی یاد بگیریم.
قبل از پرداختن به تابع جواب تمرین فصل قبل رو میدم.
👇👇👇👇👇
> > > قسمت سیزدهم
با عرض سلام و خسته نباشید.
خوب در قسمت قبل به تعریف یک سری نکات از توابع در پایتون پرداختیم و یک تمرین هم دادیم.
متاسفانه تمام دوستانی که تمرین رو حل کردن و جواب رو برای من فرستادند اشتباه حل کرده بودند.
دوستانی که نتونستن جواب درستی به سوال بدن همون کسانی هستند که حرف من رو در مورد این که "تمرین کردن خیلی مهمه" جدی نگرفتن.
قبلا هم گفتم که با حفظ کردن آموزشها شما یک برنامه ساده هم نمیتونید بنویسید (چه زبان پایتون و چه هر زبان دیگه ای) و نیاز دارید هر چیزی یاد میگیرید روش تمرین کنید.
قرار شد در این قسمت تابع رو تا حدودی یاد بگیریم.
قبل از پرداختن به تابع جواب تمرین فصل قبل رو میدم.
👇👇👇👇👇
تعریف تابع:
وقتی میخوایم یک تابع بنویسیم ابتدا باید با یک دستور به مفسر پایتون بفهمونیم که شروع به ساختن تابع کردیم(مثل حلقه ها که با while میفهموندیم شروع به ساختن حلقه کردیم)
دستور def برای همین کار ساخته شده که بعد از نوشتن این دستور و رعایت یک فاصله باید نام تابع و پرانتز باز و بسته رو بهش بدیم و بعد از دونقطه که آخرش میذاریم به خط بعد بریم و بدنه ی تابع رو بنویسیم:
def name():
body
وقتی میخوایم یک تابع بنویسیم ابتدا باید با یک دستور به مفسر پایتون بفهمونیم که شروع به ساختن تابع کردیم(مثل حلقه ها که با while میفهموندیم شروع به ساختن حلقه کردیم)
دستور def برای همین کار ساخته شده که بعد از نوشتن این دستور و رعایت یک فاصله باید نام تابع و پرانتز باز و بسته رو بهش بدیم و بعد از دونقطه که آخرش میذاریم به خط بعد بریم و بدنه ی تابع رو بنویسیم:
def name():
body
4 تابع با بدنه های مختلف ساختیم و برای اجرا کافیه نام تابع رو همراه با پرانتز باز و بسته بنویسیم:
👇👇👇👇
👇👇👇👇
وقتی نام تابع رو همراه با پرانتز ها بیاریم، مفسر تابع رو اجرا میکنه و وقتی نام تابع رو بدون پرانتز بیاریم مفسر به خود تابع که در حافظه سیستم ذخیره شده است رجوع میکنه و در این شرایط میشه تابع رو به یک متغیر دیگه نسبت دهی کرد:
👇👇👇👇👇
👇👇👇👇👇
اگر در نسبت دهی توابع از پرانتز هم استفاده کنیم، در این صورت مقدار خروجی از تابع رو به متغیر نسبت میده، که در اینجا توابع ما هیچ خروجی نداند و مقدار ما None خواهد بود به معنای هیچی !
👇👇👇👇👇
👇👇👇👇👇
همونطور که مشاهده کردید زمانی که توابع رو با پرانتز نسبت دهی کردیم، ابتدا تابع اجرا شد و بعدش خروجی تابع در متغیر counter قرار گرفت و توابعی که خروجی نداردن مقدار None رو برمیگردونن.