یک عاشق یادگیری و ساختن , از برنامه نویسی تا طراحی قطعات مکانیکی و حتی کمی هنری
کاربرد های decoration در پایتون
سلام من مهدی پورکاظمی هستم با من همراه باشید تا با هم کمی کد بخوریم
پترنهای زیادی در دنیای برنامه نویسی برای کد نویسی تمیز و سادهسازی و سریعتر کردن روند توسعه و ... وجود دارد که استفادههای می شود ؛ با من همراه باشید تا کاربردهای دکوریشن در پایتون را بررسی کنیم
نکته : کدها قرار داده شده کمی زمان می برد تا بارگذاری گردد
دکوریشن چیست؟
در این جا من فقط کاربردهای ان را بررسی می کنم برای اطلاع بیشتر به این لینک مراجعه کنید
مثال های مفید از کاربردهای دکوریشن
- استفاده برای بررسی سرعت اجرای یک فانکشن
- آسان تر ساختن مسیر بررسی مشکل (دیباگ کردن)
- توقف اجرای برنامه برای چند ثانیه
- نمونه ای از طراحی الگوی (plug-in design pattern)
مثال اول (timer)
برای هر برنامه نویسی نگاه کردن به کد راحت تر از خواندن توضیح متن اون هست با این حال توضیح کد در درون خود کد برای فهم بیشتر قرار داده شده است
تابع دکوریتور با استفاده از ماژول تایمر و با فراخوانی آن قبل و بعد از فراخوانی تابع ورودی مقدار زمانی که اجرای تابع ورودی صرف می کند به همراه پاسخ آن در خروجی چاپ می گردد
مثال دوم (debugger)
استفاده از تابعی که در هر مرحله روند اجرای کد و یا ورودی و خروجی کد و ... نمایش دهد نه تنها از ایجاد خطا جلوگیری می کند بلکه باعث فهم بهتر از کد و برنامه نویس بهتری شدن می گردد
تابع دکوریتور با استفاده از حلقه تکرار بر روی مقادیر ورودی، مقادیر ورودی تابع را در یک لیست ذخیره کرده و به همراه اسم تابع در خط 14 قبل از صدا زدن تابع چاپ می کند پس از صدا زدن تابع و دریافت مقدار بازگشتی(اگر موجود باشد) در خط بعدی به همراه اسم تابع چاپ می شود
مثال سوم (slow down)
استفاده از این تابع در زمانی که انتظار داریم که نتیجه یک درخواست بر روی شبکه بازگردد و یا استفاده از تردها مفید هست لازم به ذکر است که مثال های ذکر شده برای تمرین و فهم بیشتر است
در این مثال تابع ورودی به تابع دکوریشن قبل از صدا زدن به کمک تابع تایم یک ثانیه متوقف می گردد.
مثال چهارم(plug-in)
پیاده سازی الگوریتم پلاگین با استفاده از دکوریشن ، به عنوان یک مثال ساده برای استفاده بهتر از دکوریشن در ادامه قرار دارد.
در این مثال تابع ورودی به تابع دکوریشن در یک دیکشنری ذخیره می گردد که اسم تابع کلید آن و خود تابع به عنوان مقدار در دیکشنری که به صورت گلوبال تعریف شده ذخیره می شود و برای اجرای توابع ذخیره شده باید آنها را از لیست خارج کرده و صدا زد
مطلبی دیگر از این انتشارات
مفهوم Backward compatibility
مطلبی دیگر از این انتشارات
آموزش رفع خطای Specified Key Was Too Long هنگام Migrate در لاراول
مطلبی دیگر از این انتشارات
نصب پایتون در گوشی