بلاگ

آموزش برنامه نویسی شی گرایی در پایتون

یکی از مباحث مهم برنامه‌ نویسی، شی‌ گرایی است که هر برنامه‌نویس حرفه‌ای باید آن را بیاموزد. زبان برنامه‌ نویسی پایتون یکی از زبان‌های پایه شی‌ گرا است؛ به طوری که تمامی داده‌ها در آن یک شی هستند. از این رو ما در این مقاله با مباحث مختلف برنامه‌ نویسی شی‌ گرا در پایتون از جمله کلاس، شی، ارث‌ بری، کپسوله‌ سازی و غیره آشنا خواهیم شد و نکات مهمی را آموزش خواهیم داد؛ پس تا آخر این مقاله با ما همراه باشید.

آموزش اصولی و کاربردی پایتون، همراه با برترین و جدیدترین شیوه‌های اصولی برنامه نویسی 

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

برنامه‌ نویسی شی‌ گرا، کدنویسی را در پروژه‌های بزرگ بسیار آسان‌تر و خواناتر کرده و کدها منظم‌تر خواهند بود. پایتون نیز یکی از زبان‌های شی‌ گرا است که از اساس به صورت شی نوشته شده است. در این زبان هر متغیر و داده‌ای که تعریف می‌کنیم، یک شی است.

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

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

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

آموزش تمامی زبان‌های برنامه‌نویسی با جدیدترین متدها، برای آشنایی بیشتر به لینک مراجعه کنید

کپسوله سازی

این مفهوم به ما کمک میکند تا خصوصیاتی که غیرضرروری هستند رو مخفی کنیم کنیم که این کار مدیریت نرم افزار رو آسان می‌‌کند. این مفهوم به ما کمک می‌کند تا خصوصیات مهم شی رو در پشت مرز‌‍هایی مشخص مخفی کنیم و متد‌های امنی برای ارتباط با آن‌ها ارائه بدهیم که یکی از این روش ها استفاده از Private است.

 

ارث بری:

مفهوم ارث بری به ما کمک می‌کند تا یک رابطه سلسه مراتبی بین اشیاء و کلاس‌ها ایجاد کنیم. به عنوان مثال میوه نمای کلی پرتقال است. این مفهوم به ما در نوشتن کد‌هایی با قابلیت استفاده دوباره کمک زیادی می‌کند.

انتزاع:

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

چند شکلی:

مفهوم چند شکلی به معنی اشکال مختلف است. یعنی یک چیز یا روش می‌تواند با روش‌های مختلف استفاده شود. مانند متد سازنده در کلاس ها.

برنامه نویسی شی گرا در پایتون به چه صورتی است؟

زبان برنامه‌نویسی پایتون، یک زبان برنامه‌نویسی چند پارادایمی است؛ به این معنی که از رویکردهای برنامه‌نویسی گوناگونی پشتیبانی می‌کند. یک راهکار محبوب برای حل مسائل برنامه‌نویسی، ساخت شی یا همان Object می‌­باشد. درنتیجه زبان‌های برنامه‌نویسی که از این رویکرد و در واقع پارادایم برنامه‌نویسی پشتیبانی می‌کنند را شی‌گرا یا Object Oriented و برنامه‌نویسی با این پارادایم را برنامه‌نویسی شی‌گرا یا همان Object Oriented Programming می‌گویند.

مفهوم OOP در پایتون به چه معنا است؟

برای اینکه بهتر بتوانیم فلسفه­‌ای برنامه نویسی شی گرایی در پایتون را درک کنیم، باید این مفاهیم را بدانیم. OOP در پایتون برای ساخت کدهای قابل استفاده ایجاد می شود که Don’t Repeat Yourself با مفهوم DRY شناخته می‌­شود که به معنای این است که کاری که یکبار انجام شده است نباید دوباره تکرار شود.

استفاده ی مجدد از کدها در پایتون یکی از مهم‌­ترین روش­‌های اصل مهندسی نرم افزار شمرده می­‌شود و این مفهوم در سه اصل اساسی در شی گرایی پایتون ارائه می­‌شود که در ادامه می­‌توانید ببینید.

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

Inheritance یا ارث بری این ویژگی را دارد که کلاسی که ساخته‌­اید می­‌تواند متد­ها یا ویژگی­‌هایی را که دارد، به نسل بعدی خودش ارث می‌­دهد که این کار بخاطر یک نرم افزاری به اسم DRY اتفاق می­‌افتد.

این مفهوم که در فارسی به آن چند ریختی گفته می­‌شود، به روش‌­های متفاوتی برای ورودی‌­های داده از آن استفاده می‌­گردد.

کلاس‌ها و اشیاء (Classes and Objects)

همان‌طور که در قبل گفتیم، در برنامه‌ نویسی شی‌ گرا، کلاس‌ها مجموعه‌ای از اشیاء را تعریف می‌کنند که می‌توانند با هم تعامل کنند. در واقع کلاس‌ها سازوکاری برای برنامه‌نویس جهت دسته‌بندی و گروه‌بندی اشیاء مشابه هستند.

کلاس (class)

در پایتون، برای تعریف کلاس از کلمه‌ی کلیدی class استفاده می‌کنند و در ادامه نام کلاس به آن اختصاص داده می‌شود.

اشیاء (Objects)

اشیاء در برنامه‌ نویسی شی‌ گرا، از سه قسمت تشکیل شده‌اند:

صفت‌های یک شی می‌توانند مقدار گرفته و خصوصیات یک شی را نشان دهند.

در اصل کارهایی که یک شی می‌تواند انجام دهد در متدهای شی قرار می‌دهند.

یک نام منحصر به فرد به شی می‌دهد و اجازه می‌دهد یک شی با دیگر اشیاء تعامل داشته باشد.

ایجاد شی:

برای ایجاد یک شی (object) در پایتون، کافی است نام شی مورد نظر را نوشته و نام کلاس مورد نظر را به آن اختصاص دهیم.

آشنایی با مفهوم‌های مهم برنامه نویسی شی گرایی پایتون

مفاهیم برخی از اسامی به کار گرفته شده در پایتون، بسیار حائز اهمیت می‌باشد و شما باید برای انجام هر چه بهتر برنامه نویسی در زبان پایتون، با آن‌ها آشنا شوید که ما در این بخش به آن‌ها می‌­پردازیم.

مفهوم کلاس در برنامه نویسی شی گرا

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

کلاس مانند نقشه­‌ایی است که می‌تواند راه درست را به شما نشان دهند تا بتوانید به خوبی آن را پیاده سازی کنید. در واقع شما آن را می­‌سازند و به بیان دیگر، Object ها پیاده سازی این کلاس‌­ها هستند.

به عنوان مثال ما کلاس car را داریم که object­های آن ford و Toyota می‌باشند که این‌ها دارای properties و Methods هستند.

این‌ها با یکدیگر تفاوت دارند، اما برخی از ویژگی­‌های شان مشابه است؛ به عنوان مثال هر دو آن‌ها ویژگی رنگ یا شکل کاپوت را دارند و متدهایی مانند دور زدن یا حرکت فرمون و یا حرکت اگزوزها را هم دارند که فقط پیاده سازی آن‌ها با یک دیگر فرق دارد.

مفهوم وراثت در OOP

وراثت یکی از مفاهیم اصلی در برنامه نویسی شی گرا است. به کمک یک مثال ساده این مفهوم را به راحتی توضیح می دهیم. برای مثال خودرو McLaren 720S را در نظر بگیرید که در اصل یک ابرخودرو است.

همانطور که می­‌دانید، اکثر خودروها از ویژگی­‌های مشترکی مانند درب، پنجره جلو، 4 چرخ، چراغ های جلو، چراغ های عقب و مواردی از این قبیل برخوردار هستند. با این حال، به عنوان یک خودرو خاص، ویژگی­‌های سفارشی دیگری مانند موتور توربو شارژ خاص، جعبه دنده سفارشی ساخته شده توسط مک لارن و یک سیستم سفارشی AWD و .. نیز دارند که آن را از سایر خودروها متمایز کرده است.

حالا این مفاهیم را به مفاهیم ارث­بری در شی گرایی مرتبط می­‌کنیم؛ پس می‌­توان گفت این خودرو، ویژگی‌هایی از والد خود به ارث می­‌برد که این والد همان خودرو (کلاس خودرو) است و این همان مفهوم وراثت است. در اصل، وراثت پدیده­ای است که یک عنصری از کلاس والد خود ویژگی بدست می­‌آورد. یعنی اگر یک کلاس به نام کلاس خودرو داشته باشیم، خودرو McLaren 720S علاوه بر داشتن همه ویژگی­‌‌های مشترک این کلاس که از آن به ارث می­برد، ویژگی­‌های خاصی نیز برای خود دارد که در اینجا کلاس خودرو به عنوان کلاس والد شناحته می شود.

پارامتر سلف(self) در زبان برنامه نویسی پایتون

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

متغیرهایی که مختص نمونه ایجاد شده از کلاس هستند و در زبان برنامه نویسی پایتون امکان استفاده از آن­‌ها برای شما فراهم می­‌شود.

این متغییر در تمامی اشیا مشترک بوده و به ندرت استفاده می‌­گردد.

سخن پایانی

در مقاله آموزش برنامه نویسی شی گرایی در پایتون، شما با کاربرد و مفهوم شی گرایی در پایتون آشنا شدید. درباره‌ی متدها و متد سازنده در پایتون توضیح دادیم و همچنین با متغیرهای نمونه و خصوصی در پایتون آشنا شدید. در مورد کپسوله سازی و وراثت توضیحاتی دادیم و در کل مبحث شی گرایی را در حد مقدماتی برای شما آموزش دادیم و شما دانستید شی گرایی در پایتون چیست.

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

 

مطالب زیر را حتما مطالعه کنید

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