آموزش برنامه نویسی شی گرایی در پایتون
یکی از مباحث مهم برنامه نویسی، شی گرایی است که هر برنامهنویس حرفهای باید آن را بیاموزد. زبان برنامه نویسی پایتون یکی از زبانهای پایه شی گرا است؛ به طوری که تمامی دادهها در آن یک شی هستند. از این رو ما در این مقاله با مباحث مختلف برنامه نویسی شی گرا در پایتون از جمله کلاس، شی، ارث بری، کپسوله سازی و غیره آشنا خواهیم شد و نکات مهمی را آموزش خواهیم داد؛ پس تا آخر این مقاله با ما همراه باشید.
آموزش اصولی و کاربردی پایتون، همراه با برترین و جدیدترین شیوههای اصولی برنامه نویسی
فهرست مطالب
- 1 برنامه نویسی شی گرا چیست؟
- 2 اصول برنامه نویسی شی گرا چیست؟
- 3 ارث بری:
- 4 برنامه نویسی شی گرا در پایتون به چه صورتی است؟
- 5 مفهوم OOP در پایتون به چه معنا است؟
- 6 کلاسها و اشیاء (Classes and Objects)
- 7 آشنایی با مفهومهای مهم برنامه نویسی شی گرایی پایتون
- 8 مفهوم کلاس در برنامه نویسی شی گرا
- 9 مفهوم وراثت در OOP
- 10 پارامتر سلف(self) در زبان برنامه نویسی پایتون
برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا (Object-Oriented Programming) که به صورت مختصر OOP نامیده میشود، یک نوع شیوهی برنامه نویسی کامپیوتری است که در آن طراحی نرم افزار به جای توابع و منطق، حول محور اشیاء و دادهها میچرخد.
برنامه نویسی شی گرا، کدنویسی را در پروژههای بزرگ بسیار آسانتر و خواناتر کرده و کدها منظمتر خواهند بود. پایتون نیز یکی از زبانهای شی گرا است که از اساس به صورت شی نوشته شده است. در این زبان هر متغیر و دادهای که تعریف میکنیم، یک شی است.
در ادامه خواهید دید چگونه در پایتون یک برنامه به صورت شی گرا نوشته میشود. اگر نیاز به اطلاعات بیشتری در مورد برنامه نویسی شی گرایی دارید، میتوانید دورهی مجازی آموزش مبانی و مفاهیم شی گرایی آکادمی مدرسان پیشتاز را خریداری و استفاده کنید.
اصول برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا برپایه مفاهیم شیء به جای اقدامات و داده به جای منطق بنا شد. برای اینکه بتوانیم یک زبان برنامه نویسی را شی گرا بدانیم، باید بدانیم که آیا این زبان سازوکاری برای کار با اشیاء و کلاسها دارد یا خیر، همچنین باید ببینیم که امکان پیاده سازی و استفاده از مفاهیم پایه شیء گرایی مانند ارث بری، انتزاع، کپسوله سازی و چند شکلی را داشته باشد که در ادامه هر کدام را توضیح میدهیم.
آموزش تمامی زبانهای برنامهنویسی با جدیدترین متدها، برای آشنایی بیشتر به لینک مراجعه کنید
کپسوله سازی
این مفهوم به ما کمک میکند تا خصوصیاتی که غیرضرروری هستند رو مخفی کنیم کنیم که این کار مدیریت نرم افزار رو آسان میکند. این مفهوم به ما کمک میکند تا خصوصیات مهم شی رو در پشت مرزهایی مشخص مخفی کنیم و متدهای امنی برای ارتباط با آنها ارائه بدهیم که یکی از این روش ها استفاده از Private است.
ارث بری:
مفهوم ارث بری به ما کمک میکند تا یک رابطه سلسه مراتبی بین اشیاء و کلاسها ایجاد کنیم. به عنوان مثال میوه نمای کلی پرتقال است. این مفهوم به ما در نوشتن کدهایی با قابلیت استفاده دوباره کمک زیادی میکند.
انتزاع:
این ویژگی به ما کمک میکند که بتونیم جزئیات رو مخفی کنیم و متدهایی برای ارتباط با آنها ارائه بدهیم. به عنوان مثال کسی که اسکوتر سوار میشود میداند که اگه دکمه زنگ رو بزنه یک صدایی پخش خواهد شد، ولی از این که این صدا چجوری تولید و پخش می شود هیچ اطلاعی ندارد.
چند شکلی:
مفهوم چند شکلی به معنی اشکال مختلف است. یعنی یک چیز یا روش میتواند با روشهای مختلف استفاده شود. مانند متد سازنده در کلاس ها.
برنامه نویسی شی گرا در پایتون به چه صورتی است؟
زبان برنامهنویسی پایتون، یک زبان برنامهنویسی چند پارادایمی است؛ به این معنی که از رویکردهای برنامهنویسی گوناگونی پشتیبانی میکند. یک راهکار محبوب برای حل مسائل برنامهنویسی، ساخت شی یا همان Object میباشد. درنتیجه زبانهای برنامهنویسی که از این رویکرد و در واقع پارادایم برنامهنویسی پشتیبانی میکنند را شیگرا یا Object Oriented و برنامهنویسی با این پارادایم را برنامهنویسی شیگرا یا همان Object Oriented Programming میگویند.
مفهوم OOP در پایتون به چه معنا است؟
برای اینکه بهتر بتوانیم فلسفهای برنامه نویسی شی گرایی در پایتون را درک کنیم، باید این مفاهیم را بدانیم. OOP در پایتون برای ساخت کدهای قابل استفاده ایجاد می شود که Don’t Repeat Yourself با مفهوم DRY شناخته میشود که به معنای این است که کاری که یکبار انجام شده است نباید دوباره تکرار شود.
استفاده ی مجدد از کدها در پایتون یکی از مهمترین روشهای اصل مهندسی نرم افزار شمرده میشود و این مفهوم در سه اصل اساسی در شی گرایی پایتون ارائه میشود که در ادامه میتوانید ببینید.
- Encapsulation
از جمله روشهایی که برای ساخت تجریه از آن استفاده میشود. در واقع هر شی از مجموعه دادههایی هستند که به عنوان یک واحد مجزا از آنها یاد شده و در درون این اشیا دادههایی به صورت متغیر و متد قرار گرفته است.
- Inheritance
Inheritance یا ارث بری این ویژگی را دارد که کلاسی که ساختهاید میتواند متدها یا ویژگیهایی را که دارد، به نسل بعدی خودش ارث میدهد که این کار بخاطر یک نرم افزاری به اسم DRY اتفاق میافتد.
- polymorphism
این مفهوم که در فارسی به آن چند ریختی گفته میشود، به روشهای متفاوتی برای ورودیهای داده از آن استفاده میگردد.
کلاسها و اشیاء (Classes and Objects)
همانطور که در قبل گفتیم، در برنامه نویسی شی گرا، کلاسها مجموعهای از اشیاء را تعریف میکنند که میتوانند با هم تعامل کنند. در واقع کلاسها سازوکاری برای برنامهنویس جهت دستهبندی و گروهبندی اشیاء مشابه هستند.
کلاس (class)
در پایتون، برای تعریف کلاس از کلمهی کلیدی class استفاده میکنند و در ادامه نام کلاس به آن اختصاص داده میشود.
اشیاء (Objects)
اشیاء در برنامه نویسی شی گرا، از سه قسمت تشکیل شدهاند:
- حالت (state)
صفتهای یک شی میتوانند مقدار گرفته و خصوصیات یک شی را نشان دهند.
- رفتار (Behavior)
در اصل کارهایی که یک شی میتواند انجام دهد در متدهای شی قرار میدهند.
- هویت (Identity)
یک نام منحصر به فرد به شی میدهد و اجازه میدهد یک شی با دیگر اشیاء تعامل داشته باشد.
ایجاد شی:
برای ایجاد یک شی (object) در پایتون، کافی است نام شی مورد نظر را نوشته و نام کلاس مورد نظر را به آن اختصاص دهیم.
آشنایی با مفهومهای مهم برنامه نویسی شی گرایی پایتون
مفاهیم برخی از اسامی به کار گرفته شده در پایتون، بسیار حائز اهمیت میباشد و شما باید برای انجام هر چه بهتر برنامه نویسی در زبان پایتون، با آنها آشنا شوید که ما در این بخش به آنها میپردازیم.
مفهوم کلاس در برنامه نویسی شی گرا
کلاسهایی هستند که نوعی از اشیای مقدماتی میباشند که فهرستی از خصوصیات خود را ارائه میکنند که در تعریف تبدیل به یک شی میشوند. مثلا در بازی شطرنج کلاسی وجود دارد به عنوان مهره که فهرستی از اندازه و رنگ و ارتفاع و شکل و حرکت را ارائه میکنند.
کلاس مانند نقشهایی است که میتواند راه درست را به شما نشان دهند تا بتوانید به خوبی آن را پیاده سازی کنید. در واقع شما آن را میسازند و به بیان دیگر، Object ها پیاده سازی این کلاسها هستند.
به عنوان مثال ما کلاس car را داریم که objectهای آن ford و Toyota میباشند که اینها دارای properties و Methods هستند.
اینها با یکدیگر تفاوت دارند، اما برخی از ویژگیهای شان مشابه است؛ به عنوان مثال هر دو آنها ویژگی رنگ یا شکل کاپوت را دارند و متدهایی مانند دور زدن یا حرکت فرمون و یا حرکت اگزوزها را هم دارند که فقط پیاده سازی آنها با یک دیگر فرق دارد.
مفهوم وراثت در OOP
وراثت یکی از مفاهیم اصلی در برنامه نویسی شی گرا است. به کمک یک مثال ساده این مفهوم را به راحتی توضیح می دهیم. برای مثال خودرو McLaren 720S را در نظر بگیرید که در اصل یک ابرخودرو است.
همانطور که میدانید، اکثر خودروها از ویژگیهای مشترکی مانند درب، پنجره جلو، 4 چرخ، چراغ های جلو، چراغ های عقب و مواردی از این قبیل برخوردار هستند. با این حال، به عنوان یک خودرو خاص، ویژگیهای سفارشی دیگری مانند موتور توربو شارژ خاص، جعبه دنده سفارشی ساخته شده توسط مک لارن و یک سیستم سفارشی AWD و .. نیز دارند که آن را از سایر خودروها متمایز کرده است.
حالا این مفاهیم را به مفاهیم ارثبری در شی گرایی مرتبط میکنیم؛ پس میتوان گفت این خودرو، ویژگیهایی از والد خود به ارث میبرد که این والد همان خودرو (کلاس خودرو) است و این همان مفهوم وراثت است. در اصل، وراثت پدیدهای است که یک عنصری از کلاس والد خود ویژگی بدست میآورد. یعنی اگر یک کلاس به نام کلاس خودرو داشته باشیم، خودرو McLaren 720S علاوه بر داشتن همه ویژگیهای مشترک این کلاس که از آن به ارث میبرد، ویژگیهای خاصی نیز برای خود دارد که در اینجا کلاس خودرو به عنوان کلاس والد شناحته می شود.
پارامتر سلف(self) در زبان برنامه نویسی پایتون
زبان برنامه نویسی پایتون به ما میگوید که برای متدهای کلاس ، لازم است یک پارامتر، اول اضافی تعریف گردد و در هنگام تعریف، خود پایتون آن را شناسایی کند. در خصوص متغیرها ، در آموزش پایتون مدرسان پیشتاز، متوجه میشوید که این زبان در واقع چیزی به نام اعضای خصوصی ندارد. در عوض، بر توافق جمعی تکیه دارد و این متغیرها صرفا تابعهایی هستند که از خارج از کلاس قابل دسترسی نیستند. اما در زبان برنامه نویسی پایتون با مسئولیت خودتان، امکان ویرایش آنها را به شما میدهد. چرا که امکان دارد به درستی عمل نکنند.
- متغیرهای نمونه ( Instance Variables )
متغیرهایی که مختص نمونه ایجاد شده از کلاس هستند و در زبان برنامه نویسی پایتون امکان استفاده از آنها برای شما فراهم میشود.
- متغیرهای کلاس ( Class variables )
این متغییر در تمامی اشیا مشترک بوده و به ندرت استفاده میگردد.
سخن پایانی
در مقاله آموزش برنامه نویسی شی گرایی در پایتون، شما با کاربرد و مفهوم شی گرایی در پایتون آشنا شدید. دربارهی متدها و متد سازنده در پایتون توضیح دادیم و همچنین با متغیرهای نمونه و خصوصی در پایتون آشنا شدید. در مورد کپسوله سازی و وراثت توضیحاتی دادیم و در کل مبحث شی گرایی را در حد مقدماتی برای شما آموزش دادیم و شما دانستید شی گرایی در پایتون چیست.
مباحث مربوط به شی گرایی در پایتون، بسیار گستردهتر و خارج از حوصلهی این مقاله است. بعضی از موضوعات گفته نشد یا در حد کوتاهی توضیح داده شد که باز به همان محدویت مقاله باز میگردد و اگر به دنبال آموزشهای بیشتر در زمینه پایتون میباشید، میتوانید از دوره آموزشی پایتون مدرسان پیشتاز استفاده کنید تا صفر تا صد زبان پایتون را به خوبی یاد بگیرید.
دیدگاهتان را بنویسید