برنامهنویسی شیگرایی در پایتون
امنیت در برنامهنویسی و کدها حرف اول را میزند و با توجه به اینکه برقراری امنیت در برنامهنویسی ساختیافته نسبت به برنامهنویسی شیگرا کمتر است، که یکی از دلایل بالا بودن امنیت در برنامهنویسی شیگرا، امکان پنهانسازی کدها (کپسولهسازی) است، و با توجه به اینکه پایتون یک زبان شیگراست تصمیم گرفتیم در مقالهای، شیگرایی در پایتون را توضیح دهیم.
پیشنهادی : زبان برنامه نویسی پایتون چیست؟
برنامهنویسی شیگرا چیست ؟
شیگرایی
برنامهنویسی شیگرا (Object-Oriented Programming) یا OOP یک شیوه در برنامهنویسی میباشد که از جهان واقعی برگرفته شده که ساختار اصلی قسمتهای تشکیلدهنده آن، شی است.
برنامهنویسی شی گرا روشی است جهت مدلسازی چیزهای واقعی و رابطه بین این چیزها، به عنوان مثال شرکتها و کارمندان، مدرسهها و دانشآموزان و … .
در برنامهنویسی شیگرا ما با دو مفهوم «کلاس» (Class) و «شی» (Object) سروکار داریم، کلاس درواقع مثل یک نقشه راه است که ویژگیهای یک شی در آن تعریف میشود.
به بیانی دیگر در برنامهنویسی شیگرا، برنامهها در فرم و قالب موجودیتهایی که با هم در ارتباط هستند مدنظر میباشند. (منظور از موجودیت همان شی است)
این اشیاء در قالب کلاس تعریف میگردند، و در هر کلاسی «رفتار» (Behavior) و «خصوصیات» (Attributes) اشیاء وصف میشود.
همچنین میتوان بینهایت شی از یک کلاس ایجاد کرد، در ضمن هر شی یک نمونه (Instance) از کلاس خود محسوب میشود که به «نمونهسازی» (Instantiation) معروف است.
برخی مفاهیم مهم در شیگرایی
پس از معرفی دو مفهوم کلاس و شی، مفاهیم دیگری نیز وجود دارد که به صورت خلاصه به آنها اشاره خواهیم کرد:
- کپسولهسازی (Encapsulation): خصوصیات هر شی در قلمروی کلاس مرتبط به خود شی قرار دارد، یعنی اشیای دیگر نمیتوانند به دادههای کلاس دسترسی داشته باشند و تغییراتی را در آنها لحاظ کنند.
در کپسولهسازی اشیا با هم ارتباط دارند اما بدون اینکه از محتوای درون هم مطلع باشند، این روش امنیت را در برنامهنویسی شیگرا به شدت بالا میبرد. - ارثبری و وراثت (Inheritance): این مفهوم را با یک مثال تعریف میکنیم، پدر یک خانواده را در نظر بگیرید که دارای خصوصیاتی از جمله مو و چشم رنگی باشد، حال این ویژگیها به فرزندان خانواده نیز به ارث رسیده است.
فرزندان نیز علاوه بر خصوصیاتی که به ارث بردهاند، خود دارای ویژگیهای منحصر به فردی نیز هستند.
کلاسی که از آن ارثبری شده کلاس پایه (Parent Class) و کلاسی که از کلاس پدر ارثبری کرده کلاس فرزند (Derived Class) گفته میشود.
در مثال بالا، پدر در نقش کلاس والد یا (Superclass) است و فرزندان که از پدر، خصوصیاتی را به ارث بردهاند نقش کلاس فرزند یا (Subclass) را ایفا میکنند. - چندریختی (Polymorphism): میتوان یک متد را به شکل عمومی معرفی کرد که ورودیهای آن برای هر بار استفاده متفاوت باشد.
به عنوان مثال انسان را یک شی در نظر بگیریم، میدانیم که همه انسانها غذا میخورند، پس یک متد با نام Food ایجاد میکنیم، نکتهای که باید در اینجا در نظر داشت این است که همه انسانها غذاهای مشابه نمیخورند پس متد Food ما در اینجا برای هر بار استفاده، ورودیهای متفاوتی خواهد داشت. - انتزاع (Abstraction): کلاسهای انتزاعی در بدنه خود هیچ کدی ندارند و نمیتوان از روی این کلاسها نمونه ساخت.
درواقع انتزاع یعنی جزییات برنامه پنهان باشد و فقط قابلیت برنامه برای کاربر قابل نمایش باشد، و این کار سبب بالا رفتن امنیت برنامه نیز میشود.
برنامه نویسی شیگرایی در پایتون چیست؟
شیگرایی در پایتون
همانطور که حتماً میدانید پایتون یک زبان برنامهنویسی شیگراست و ساختار آن بر پایه شیگرایی توسعه یافته، یا به زبان دیگر هر چیزی که در پایتون مشاهده میکنید یک شی است.
در پایتون، برنامهنویسی شیگرا یک مدل برنامهنویسی است که از اشیاء و کلاسها در برنامهنویسی استفاده مینماید، و هدف آن پیادهسازی موجودیتهای جهان واقعی مانند وراثت، چندشکلی و … در برنامهنویسی است.
در ادامه به برخی مفاهیم شیگرایی در پایتون اشاره خواهیم کرد:
کلاس در پایتون
کلاس مجموعهای از اشیاء است که از نقشهها و نمونههای اولیهای تشکیل شده که اشیاء از آن ساخته میشوند، برای تعریف کلاس در پایتون به این روش عمل میکنیم:
ساخت کلاس در پایتون
اشیاء در پایتون
شی موجودیتی است دارای حالت و رفتار مرتبط با آن، مثلاً صندلی، میز، خودکار و … یک شی در دنیای واقعی هستند، در پایتون به عنوان مثال هر عدد صحیح مانند عدد ۱۴ یک شی است، یا رشته ”Hello” نیز یک شی میباشد.
در ضمن هر شی در پایتون از یک «شناسه» (identity)، یک «نوع» (type) و یک «مقدار» (value) تشکیل شده است، تعریف شی در پایتون به این شکل صورت میگیرد که نمونهسازی(Instantiation) نام دارد:
Object = ClassName()
وراثت در پایتون
از طریق وراثت که از مفاهیم مهم شیگرایی در پایتون است میتوان کلاسی را تعریف کرد که متدها و خصوصیاتی را از کلاس دیگری به ارث ببرد، تعریف وراثت در پایتون عبارتند از:
وراثت در شیگرایی زبان برنامهنویسی پایتون
انتزاع در پایتون
پایتون ماژول«abc» را برای استفاده از انتزاع در برنامه پایتون فراهم کرده است که به شکل ذیل قابل پیادهسازی است:
انتزاع در پایتون بهوسیله ماژول abc قابل پیادهسازی است
جمعبندی
در این مقاله از پایپلاس (pyplus) سعی کردیم تعریف خلاصهای از مفهوم شیگرایی داشته باشیم و در ادامه شیگرایی در پایتون و برخی مفاهیم اصلی آن را به صورت مختصر و مفید خدمت شما عزیزان توضیح دادیم که امیدواریم برای شما مفید بوده باشد.
همچنین ما در پایپلاس یک دوره جامع آموزش برنامه نویسی پایتون وجود دارد که مبحث شی گرایی در پایتون به طور کامل آموزش داده ایم
دیدگاهتان را بنویسید