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

درس ۱۷: شی گرایی OOP در پایتون: تعریف کلاس و ایجاد شی کتاب پایتون به پارسی

در قطعه کد زیر، مثالی از مشخصه‌های عمومی کلاس در زبان پایتون ارائه شده است. در این مثال، ویژگی‌هایnameوageو متدprint_nameبه عنوان مشخصه‌های عمومی کلاسPersonمحسوب می‌شوند که با استفاده از شیobject_personمی‌توان از خارج کلاس، به آن‌ها دسترسی داشت. یکی از انواع نحوه ارث‌بری در شی گرایی، نوع ارث‌بری منفرد است. در این نوع وراثت، هر کلاس فرزند تنها دارای یک کلاس والد است و تمامی ویژگی‌ها و متدهای کلاس والد را به ارث می‌برد. در مثال زیر، نحوه ارث‌بری کلاس فرزند از یک کلاس والد در پایتون ملاحظه می‌شود.

به هنگام استفاده از این تابع، باید متدی را درون کلاس تعریف کرد و نام متد را به عنوان آرگومان تابعclassmethodدر نظر گرفت تا این تابع، متد مشخص شده را به متد کلاس تبدیل کند. در قطعه کد زیر، مثالی از کاربرد تابعclassmethodبرای ساخت متد کلاسschool_nameملاحظه می‌شود. خروجی قطعه کد بالا به صورت   است که این خروجی نشان می‌دهد شی kirkبه عنوان نمونه‌ای از کلاس Personمحسوب می‌شود. پس از ساخت کلاسPersonو تعریف شی از این کلاس، می‌توان با استفاده از تابعisinstance()مشخص کرد که آیا شی، نمونه‌ای از کلاسPersonاست؟ قطعه کد زیر، نحوه استفاده از این تابع را نشان می‌دهد. «کلاس مجرد» کلاسی است که شامل یک یا چند «متد مجرد» باشد و «متد مجرد» متدی است که اعلان (Declare) شده ولی بدنه آن ‌تعریف (Define) نشده است. ایده طراحی کلاس مجرد در تعیین یک نقشه توسعه برای کلاس‌های فرزند آن است؛ تعیین صفات و متدهای لازم ولی واگذاردن تعریف متدها بر عهده کلاس‌های فرزند.

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

کلاس در OOP چیست؟ این مفهوم را به کمک تصویر بالا و به سادگی معرفی خواهیم کرد. یک شیء از کلاس بازی بسازید و بازی را بین دو بازیکن شروع کنید. یک سیستم کتابخانه با چند کاربر و کتاب ایجاد کنید و قابلیت قرض دادن و برگرداندن کتاب‌ها را پیاده‌سازی کنید. یک شیء از کلاس رزرو بسازید و از آن برای رزرو و لغو اتاق‌ها استفاده کنید. یک شیء از کلاس رستوران بسازید و صورت‌حساب غذاهای آن را محاسبه کنید. یک شیء از کلاس حسابداری بسازید و مجموع صورتحساب‌ها را محاسبه کنید.

کلاس در برنامه‌نویسی شی‌گرا مانند یک قالب یا نقشه برای ساخت اشیاء است. کلاس‌ها شامل داده‌ها و متدهایی هستند که رفتارهای خاصی را تعریف می‌کنند. در واقع، کلاس‌ها به ما این امکان را می‌دهند که گروهی از اشیاء مشابه با ویژگی‌ها و رفتارهای مشابه بسازیم. برای مثال، یک کلاس می‌تواند "ماشین" باشد که ویژگی‌هایی مانند رنگ، مدل و سرعت داشته باشد و متدهایی مانند حرکت کردن یا توقف را تعریف کند. اصل انتزاع در شی گرایی این امکان را فراهم می‌آورد تا بتوانیم کلاس انتزاعی بسازیم. کلاس Abstract یا همان انتزاعی نمونه‌ اولیه‌ای از یک کلاس است که با تعریف کلاس‌های فرزند می‌توان از متدهای آن کلاس ارث‌بری کرد.

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

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

یک کلاس، یک «نقشه ساخت» (بلوپرینت | BluePrint) برای یک شی است. می‌توان به یک کلاس به عنوان پیش‌طرح (اسکیس | Sketch) از طوطی (Parrot) با برچسب‌های آن نگاه کرد. کلاس همه جزئیات درباره نام، رنگ‌ها، اندازه و دیگر موارد را دارد. Maestro I محصولی از Softlab مونیخ است و نخستین محیط توسعه یکپارچه جهان برای نرم‌افزار بود. تا سال ۱۹۸۹، ۶۰۰۰ نصب در جمهوری فدرال آلمان وجود داشته است. مائسترو مسلماً رهبر جهان در این زمینه در دهه ۱۹۷۰ و ۱۹۸۰ بود.

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

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

برای نمونه صفت‌هایی همچون نام، نام‌خانوادگی، سن و جنسیت برای هر یک از اشیای کلاس «شخص» قابل تعریف است. بدیهی است که هر نمونه شی از این کلاس می‌بایست شامل مقادیر منحصر‌به‌فردی از این Attributeها باشد. بعلاوه، ما با ایجاد یک متد ()run  جدید، توابع کلاس والدین را گسترش می دهیم. بنابراین، هیچ حافظه یا فضای ذخیره سازی اختصاص داده نمی شود. در اینجا، ما از کلید واژه class برای تعریف یک کلاس خالی Parrot  استفاده می کنیم. پیاده سازی کلاس در پایتون بحث کاملا ساده ایی است برخی موضوعاتی مانند private در پایتون وجود ندارد و بحثی متفاوت دارد.

در این بخش می‌آموزید که چطور از ارثبری پایتون برای مدیریت بهتر کلاس‌ها استفاده کنید. وراثت به شما اجازه میدهد از متدها و اتریبیوت‌هایی که در کلاس‌های دیگر وجود دارد استفاده کنید. زمانی که در کد بالا، از کلاس Car یک آبجکت ایجاد کردیم، مقدار benz را مستقیما به کلاس Car ارسال کردیم. بر خلاف متدهای معمولی، متد init دارای دو underscore در اطراف آن است که نشان دهنده خاص بودن این متد دارد. به متدهایی که قبل و بعد از نام ‌آنها دو underscore وجود داشته باشد، dunder گفته میشود. با تقسیم کد به شیء‌های مستقل و متمرکز، قابلیت خوانایی، تعمیر و نگهداری آن را افزایش می‌دهید.

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

در اولین روش، از «دکوراتوری» (Decorator) با نام@classmethodاستفاده می‌شود که در ادامه قطعه کدی از کاربرد این دکوراتور در ساخت متد کلاس ارائه شده است. به علاوه،‌ تابعsetattr()را نیز می‌توان برای تغییر مقادیر متغیرهای کلاس به کار برد. SQLite یک پایگاه داده‌ی رابطه‌ای سبک و بدون نیاز به سرور است که به طور گسترده در برنامه‌های کاربردی مختلف، به خصوص برای ذخیره‌سازی داده‌های محلی، استفاده می‌شود. اس کیو ال الکمی یک کتابخانه‌ی قدرتمند Object-Relational Mapper (ORM) برای زبان برنامه‌نویسی Python است. ORM به شما این امکان را می‌دهد که با اشیاء پایتون به جای دستورات SQL با پایگاه داده تعامل داشته باشید. در این مقاله، ما به بررسی جامع الگوهای طراحی در پایتون پرداختیم و نحوه به کارگیری آن‌ها را با مثال‌های کد توضیح دادیم.

همانطور که در بخش‌های قبلی دیدیم، با استفاده از کلمه کلیدی class یک کلاس تعریف می‌کنیم. به عبارتی، باید کلاس‌های فرزندی را ایجاد کرد که از کلاس‌های انتزاعی ارث‌بری می‌کنند و سپس با تعریف اشیای جدید از کلاس‌های فرزند، بتوان به متدهای کلاس‌های انتزاعی دسترسی داشت. کلاس انتزاعی شامل «متدهای انتزاعی» (Abstract Method) می‌شود. در مثال زیر، نمونه‌ای از وراثت سلسله مراتبی در پایتون ملاحظه می‌شود. در این مثال، کلاس‌های فرزندPopularity،ValueوProductsاز تنها کلاس والدBrandsارث‌بری می‌کنند.

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

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

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

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

متد __repr__ مشابه به __str__ است، با این تفاوت که هدف آن ایجاد نمایشی رسمی و دقیق از شیء است که بتواند برای ساخت شیء جدید نیز قابل استفاده باشد. این متد بیشتر برای مقاصد دیباگینگ و توسعه کد استفاده می‌شود. در اینجا، متد __str__ نحوه نمایش شیء Person را تعیین کرده است. به‌طور پیش‌فرض، پایتون به جای نمایش محتوای دقیق شیء، آدرس حافظه آن را چاپ می‌کند، اما با استفاده از __str__ می‌توانیم نمایش را سفارشی‌سازی کنیم. در اینجا، متد __init__ برای مقداردهی اولیه به ویژگی‌های brand, model, و year استفاده شده است.

این دانش نه تنها شما را در پروژه‌های بزرگ‌تر و تیم‌های حرفه‌ای‌تر متمایز می‌کند، بلکه باعث می‌شود به عنوان یک توسعه‌دهنده، کارایی و سرعت بیشتری در تولید کد با کیفیت بالا داشته باشید. اگر به دنبال پیشرفت در حرفه برنامه‌نویسی هستید و می‌خواهید پروژه‌های پیچیده‌تری در پایتون انجام دهید، یادگیری شی‌گرایی در پایتون مسیری اجباری است. دوره «آموزش شی‌گرایی در پایتون» در مکتب‌خونه شما را برای این چالش‌ها آماده می‌کند و مهارت‌های لازم را برای ورود به بازار کار در اختیارتان قرار می‌دهد. شی‌گرایی یک پارادایم برنامه نویسی قدرتمند و انعطاف‌پذیر است که به توسعه‌دهندگان کمک می‌کند تا کدهای سازماندهی شده و قابل نگهداری بنویسند. پایتون با پشتیبانی کامل از شی‌گرایی، این امکان را فراهم می‌کند تا برنامه‌های پیچیده و کاربردی را با استفاده از کلاس‌ها، اشیاء، وراثت، چندریختی و پنهان‌سازی توسعه دهیم. در این بخش از آموزش شی گرایی در پایتون به سراغ class میرویم.

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

همان‌طور که پیش‌تر نیز گفته شده است، پایتون یک زبان برنامه‌نویسی چند الگویی (multi-paradigm) است و از الگوهای مختلفی از جمله شی گرایی پشتیبانی می‌کند. شی گرایی یک الگوی برنامه‌نویسی یا روشی برای طراحی کدهای برنامه است. به وسیله آموزش پایتون نوجوان قطعاً این مورد آموزش داده شده است که چگونه یک آبجکت یا شی نمونه از یک کلاس ایجاد شود. شما می‌توانید از کلاسی که در نظر گرفته شده، استفاده کرده و از آن برای ایجاد یک شی یا نمونه استفاده کنید. برای ساخت یک آبجکت از کلاس تنها کافیست کلاس مورد نظر را در یک متغیر ذخیره کنید.

در برنامه فوق، ما دو روش یعنی ()sing و ()dance را تعریف می کنیم. اینها متدهای نمونه (instance) نامیده می شوند زیرا آنها بر روی یک شی نمونه به عنوان مثال یعنی blu فراخوانی می شوند. پایتون یک زبان چندپارادایمی است که از شی‌گرایی پشتیبانی می‌کند، اما کاملاً شی‌گرا نیست. شما می‌توانید از رویکردهای تابعی، شی‌گرا یا ترکیبی استفاده کنید. در این مثال، تابع `animal_sound` می‌تواند با هر شی‌ای که دارای متد `make_sound` باشد کار کند، بدون توجه به نوع کلاس آن شی.

با این وجود اگر می‌خواهید با هر نوع پروژه بزرگی کار کنید، باید شیوه کار پایتون با برنامه‌نویسی شیءگرا (OOP) از جمله مفهوم کلاس در برنامه نویسی به زبان پایتون را بدانید. این مقاله مفاهیم کاملاً ابتدایی برنامه‌نویسی شیءگرا در پایتون را بررسی می‌کند. پلی‌مورفیسم یا چندریختی یکی از مفاهیم اصلی در شی گرایی است که به شما این امکان را می‌دهد تا یک متد را در چند کلاس به‌طور متفاوت پیاده‌سازی کنید. به عبارت ساده‌تر، پلی‌مورفیسم یعنی یک متد می‌تواند در کلاس‌های مختلف رفتارهای مختلفی داشته باشد. این ویژگی باعث می‌شود که کد شما انعطاف‌پذیرتر و قابل گسترش‌تر باشد. برای اعمال محدودیت بر روی ویژگی‌های کلاس، می‌توان از دو متد getter و setter در داخل کلاس استفاده کرد.

این متد باید با دو کاراکتر زیرخط آغاز شده و پایان یابد، چون این یک متد خاص در پایتون است. این متد هر زمان که شی‌ء جدیدی می‌سازید به طور خودکار فراخوانی می‌شود. با استفاده از سه گیومه پشت سر هم (""" ... """") به پایتون می‌گوییم که این یک docstring است. یک کلاس، تعریف کننده صفات (ویژگی‌ها) - که به عنوان Attribute شناخته می‌شوند - و رفتار‌های (عملیات) - که به عنوان Method شناخته می‌شوند - اشیایی است که از آن ایجاد خواهد شد. حتی کلاس‌ها، با اجرای دستور تعریف کلاس، یک شی از نوع type در حافظه ایجاد می‌گردد و از نام کلاس برای اشاره به آن شی استفاده می‌شود.

شی گرایی در پایتون این امکان را به برنامه‌نویسان می‌دهد تا وقتی به متغیر کلاسی احتیاج نداشتند، آن متغیر را با استفاده از تابعdelattr()و کلمه کلیدیdelاز برنامه حذف کنند. در قطعه کد زیر، نحوه استفاده از این دو روش برای حذف متغیرهای کلاسHtmlDocumentملاحظه می‌شود. به منظور ذخیره کردن داده‌ها با استفاده از کلاس، باید «نمونه‌ای» (وهله | Instance) از کلاس ساخته شود تا بتوان داده‌های خود را در آن ذخیره کرد. در زبان پایتون، برنامه‌نویسی شی‌گرا به راحتی قابل پیاده‌سازی است. پایتون با ارائه امکاناتی مانند کلاس‌ها (Classes) و اشیاء (Objects)، به برنامه‌نویسان امکان می‌دهد که از ویژگی‌های قدرتمند OOP بهره‌مند شوند.

کلاس‌هایFulltimeEmployeeوHuprlyEmployeeکلاس‌های فرزند هستند که با روش بازنویسی متد، بدنه متدget_salaryدر این کلاس‌ها با دستورات متفاوت تکمیل شده است. به منظور تعریف متدهای محافظت شده درون کلاس نیز می‌توان قبل از نام متد، از علامت_در پایتون استفاده کرد. در قطعه کد زیر، مثالی از نحوه تعریف متد محافظت شده در زبان پایتون ارائه شده است. همان‌طور که در این مثال ملاحظه می‌شود، متد_warmupاز نوع متد محافظت شده به حساب می‌آید. در مثال بالا، متغیرهایnameوPageمتغیرهای نمونه از کلاسPersonهستند و به هنگام ساخت شیobject_person، تابع__init__()فراخوانی می‌شود و مقادیرJohnو25درون متغیرهای نمونهnameوageقرار می‌گیرند. همان‌طور که در این مثال ملاحظه می‌کنید، نخستین پارامتر تابع__init__()، مقدارselfاست.

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

به این نوع متدها، متدهای نمونه یا همان متدهای وحله‌ای گفته می‌شود. برای اینکه بهتر بتوانیم فلسفه ی برنامه نویسی شی گرایی در پایتون را درک کنیم باید این مفاهیم را بدانیم. OOP در پایتون برای ساخت کد های قابل استفاده ایجاد می شود که Don’t Repeat Yourself با مفهوم DRY شناخته می شود که به معنای این است که کاری که یکبار انجام شده است نباید دوباره تکرار شود. با استفاده از زبان برنامه نویسی پایتون، کلاسی با نامVehicleرا ایجاد کنید که دارای دو متغیر نمونه با نام‌هایmax_speedوmileageباشد. سپس شیئ از این کلاس ایجاد کنید که با استفاده از آن، دو متغیر نمونه، با مقادیر دلخواه مقداردهی شوند.

انسداد داده‌ها به معنای مخفی کردن جزئیات پیاده‌سازی از بیرون و نمایش فقط اطلاعات ضروری است. در پایتون، می‌توانیم با استفاده از متدها و ویژگی‌های خصوصی (_ یا __ قبل از نام ویژگی‌ها) از انسداد داده‌ها استفاده کنیم. در ادامه نیز، قطعه کدی از زبان پایتون ارائه شده است که مثالی از وراثت ترکیبی را نشان می‌دهد. این نوع وراثت، ترکیبی از انواع روش‌های قبلی ارث‌بری است که تا به الان توضیح داده شدند. به عبارتی، می‌توان گفت در وراثت ترکیبی می‌توان از ترکیب وراثت ساده، وراثت چندسطحی، وراثت چندگانه و وراثت سلسله مراتبی استفاده کرد. در ادامه، ساختار نحوی وراثت چندگانه در پایتون ملاحظه می‌شود.


برنامه نویسی لودسل در دلتا