خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش پایتون : کلاسها و اشیاء (Classes and Objects)

آموزش پایتون : کلاسها و اشیاء (Classes and Objects)
نویسنده : امیر انصاری
در این آموزش با مفاهیمی آشنا می شویم که نه تنها در زبان برنامه نویسی پایتون، بلکه در تمامی زبان های برنامه نویسی شیء گرای دیگر هم با آنها سر و کار خواهید داشت. قبل از آن مروری خواهیم داشت بر مفاهیم اصلی آموزش، و با هم بررسی خواهیم کرد که اساسا کلاس و شیء در زبان ها برنامه نویسی به چه معنا می باشند.

نرم افزار سامانه مودیان راهکار



تاریخچه ای از برنامه نویسی شیء گرا


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

به دنبال این مسائل که به گوشه هایی از آنها اشاره کردیم، زبان های برنامه نویسی نیز روز به روز پیشرفته تر شدند تا طراحی نرم افزارها برای مهندسان نرم افزار آسان تر گردند. حتی روشهایی برای توسعه نرم افزار و قانونمند کردن فرآیند توسعه نرم افزار ایجاد شد.

یکی از پیشرفت های بزرگی که در همین زمینه صورت پدیرفت، مفهوم برنامه نویسی شیء گرا می باشد. در این مفهوم نرم افزار به مثابه چیزی مشابه دنیای واقعی تشبیه شده است. و سعی شده است تا با الگو گیری از دنیای واقعی فرآیند توسعه نرم افزار نیز سازمان یافته تر گردد.

کلاس چیست؟ شیء چیست؟


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

در دنیای برنامه نویسی به مجموع این خصوصیات مشترک گربه ها "کلاس گربه" می گویند. اگر شما بتوانید یک "کلاس گربه" بسازید، می توانید از روی آن کلاس هزاران گربه جدید با ظاهر یکسان تولید کنید. کلاس به منزله یک الگو می باشد که می توان از روی آن اشیاء فراوانی را با خصوصیات مشابه تولید کرد. هر کدام از این اشیاء تولید شده از این کلاس، یک شیء (Object) نام دارد.

یک کلاس (Class) مجموعه ای از خصوصیات و رفتارهای مشترک می باشد که برای منظور خاصی ایجاد می گردد. یک شیء (Object) یک نمونه ایجاد شده از روی آن کلاس می باشد که طبیعتا تمامی خصوصیات و رفتارهای آن کلاس را در خود دارد.

هر گاه از روی یک کلاس (Class) یک شیء جدید تولید شود، اصطلاحا به این کار، ایجاد نمونه (Instance) گفته می شود.

برنامه نویسی شیء گرا چیست؟


به مدلی از برنامه نویسی که در آن طراحی نرم افزار به شیوه طراحی کلاس ها و استفاده از آن کلاس ها در قالب اشیاء می باشد، برنامه نویسی شیء گرا (Object Oriented Programming) می گویند. امروزه با توسعه نرم افزارها، مهندسان نرم افزار این روش را به عنوان یک روش استاندارد در توسعه برنامه های مختلف پذیرفته اند و تقریبا عمده زبان های برنامه نویسی از قابلیت شیء گرایی پشتیبانی می کنند. زبان برنامه نویسی پایتون نیز یک زبان برنامه نویسی کاملا شیء گرا می باشد و به طور کامل از شیء گرایی پشتیبانی می کند.

مزایای برنامه نویسی شیء گرا چیست؟


مزایای برنامه نویسی شیء گرا بسیار فراوان می باشند. به عنوان مثال این مدل از برنامه نویسی مدیریت برنامه های بزرگی را که گاها مشتمل بر چندین میلیون خط کد می باشند، آسان کرده است و عملا نمی توان تصور کرد که برنامه های بزرگ را بدون استفاده از ویژگی شیء گرایی بتوان توسعه داد.

مفهوم دیگری که همراه با برنامه نویسی شیء گرا ارائه شده است، مفهوم کپسوله سازی خصوصیات و رفتارها در کلاسها می باشد که این مفهوم منجر می شود تا برنامه نویسان مختلف در قالب تیم های نرم افزاری حتی چند هزار نفری بتوانند به راحتی با یکدیگر همکاری کنند. مفهوم کپسوله سازی (Encapsulation) به این شکل می باشد که بدنه کلاس را از دید بیرونی مخفی می سازد و برنامه نویس دومی که مشغول کار با این کلاس می باشد، به طور کل نیازی ندارد تا درگیر جزئیات مربوطه به کدهای نوشته شده در کلاس گردد و از دید بیرونی با خصوصیات و رفتارهای کلاس که به آنها Property و Method گفته می شود، سر و کار خواهد داشت.

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

کتابخانه کد (Library) چیست؟


برنامه نویسی شیء گرا منجر شد تا با استفاده از ویژگی های قدرتمند آن، برنامه نویسان به سمت نوشتن کدهای عمومی که قابلیت استفاده مجدد داشته باشند بروند. این کدها با کاربردهای متفاوت به اسم کتابخانه های کد توسعه داده شده اند و در اختیار برنامه نویسان دیگر قرار گرفته اند. بعضی از این کتابخانه های کد بسیار بزرگ و چند منظوره می باشند که اصطلاحا به آنها چهار چوب کاری یا فریم ورک گفته می شود. فریم ورک ها (Frameworks) برنامه نویسی را برای تازه کارها آسانتر کرده اند و همینطور زمان توسعه نرم افزارهای بزرگ را نیز کاهش داده اند.

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

برای مشاهده فهرست آموزش های این دوره آموزشی بر روی لینک زیر کلیک کنید :


آموزش قبلی : آموزش پایتون : پارامترهای (arguments) توابع

آموزش بعدی : آموزش پایتون : ایجاد کلاس (class)



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.