خانه - پایگاه دانش کارجویا - کپسوله سازی در پایتون | ۱ مثال کاربردی

کپسوله سازی در پایتون | ۱ مثال کاربردی

فهرست مطالب

با سلام خدمت تمامی دوستان عزیزم توی این مقاله قراره به بررسی یکی دیگر از اصول مهم و کاربردی شی گرایی یعنی کپسوله سازی در پایتون بپردازیم .

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

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

بریم بررسی کنیم که کپسوله سازی در پایتون چیه و چه کاربردی داره .

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

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

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

در این مثال داده های مربوط به بخش مالی و کارمندانی که این توانایی را دارند که داده های مربوط به این بخش را تغییر دهند ، بخش مالی می نامیم .

کپسوله سازی در پایتون نیز به همین صورت است و سبب پنهان سازی داده ها می شود . (داده ها را درون کپسولی می ریزیم که محتویات آن از دید بقیه ی افراد پنهان شود .)

در این مثال هم داده های بخش مختلف (مالی ، آموزش ، حراست و … ) از دید بخش های دیگر پنهان شده است .

نحوه ی پیاده سازی کپسوله سازی در پایتون

خب حالا که با مفهوم کپسوله سازی در پایتون آشنا شدیم بریم با هم نحوه ی پیاده سازی آن را مورد بررسی قرار دهیم و فرض کنید کلاسی به نام Student داریم که متد __init__ آن علاوه بر self دارای مولفه ی ورودی grade می باشد و از این کلاس یک شی می سازیم .

کپسوله سازی در پایتون

اگر از کپسوله سازی استفاده نکنیم به راحتی می توانیم ویژگی های این کلاس را تغییر دهیم . برای مثال برای تغییر دادن نمره ی دانشجو کافی است grade شی ای که از کلاس ساختیم را به عدد دیگری تغییر دهیم . مانند تصویر زیر :
کپسوله سازی در پایتون

در شی گرایی اگر بخواهیم کلاسی را کپسوله کنیم تا بتوان متغیرهای کلاس را تغییر داد ، کافی است پشت متغیر مورد نظر ۲ تا underscore (__) قرار دهیم . با انجام این کار اگر از کلاس مورد نظر خود شی ای بسازیم و بخواهیم ویژگی نمونه ای که ساختیم را تغییر دهیم به این دلیل که در کلاس خود از کپسوله سازی استفاده کرده ایم برنامه ی ما با خطا مواجه شده و به ما Attribute Error می دهد . ( مفسر به ما می گوید که این همپین ویژگی ای وجود ندارد . )

کپسوله سازی در پایتون

حالا که به لطف کپسوله سازی در پایتون نمی توان از بیرون از کلاس که کپسوله سازی شده ویژگی هایش را عوض کرد ، چگونه می توان یم در صورت لزوم ویژگی های کلاس مورد نظر را تغییر دهیم .

برای تغییر ویژگی های کلاسی که کپسوله شده باید از داخل کلاس ویژگی ها را تغییر دادد که برای انجام این کار کافی است دو متد set ( برای ست کردن متغیر جدید )

و get ( برای چاپ کردن آن ) بسازیم .

مثال زیر به صورت کامل نحوه ی کپسوله سازی در پایتون و استفاده از متد های set و get را نشان می دهد .

کپسوله سازی در پایتون

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

تا مقاله ی بعدی خداوند یار و نگهدارتون .

ebrahim
ebrahim

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *