کدنویسی تمیز در پایتون: چگونه کدی کارآمد در پایتون بنویسیم؟
وقتی تازه شروع به یادگیری پایتون میکنید، اولویت اصلی شما این است که کدتان درست کار کند. اما با پیشرفت بهعنوان یک توسعهدهنده، علاوه بر درستی، به کارآمدی کد هم اهمیت خواهید داد. کد کارآمد سریعتر اجرا میشود، حافظه کمتری مصرف میکند و با دادههای بزرگتر بهتر مقیاسپذیر است. خبر خوب این است که برای نوشتن کد کارآمد در پایتون نیازی به سالها تجربه ندارید. با چند تکنیک ساده، حتی اگر مبتدی باشید، میتوانید کدنویسی تمیز در پایتون را اجرا کنید.
در این مقاله، تکنیکهای عملی برای بهبود کارایی کد و کدنویسی تمیز در پایتون را بررسی میکنیم. برای هر تکنیک، مقایسهای واضح بین روش ناکارآمد و روش کارآمدتر ارائه میشود.
1- از توابع داخلی به جای پیادهسازی دستی استفاده کنید
پایتون توابع داخلی زیادی دارد که برای انجام کارهای رایج بهینهسازی شدهاند.
به جای این:
این روش دو بار لیست را پیمایش میکند که ناکارآمد است.
این کار را انجام دهید:
این روش از توابع داخلی max() و sum() استفاده میکند که برای این عملیاتها بهینه شدهاند. این کد نهتنها سریعتر است (بهویژه برای دادههای بزرگ)، بلکه خواناتر و کمتر مستعد خطاست.
نکته: هرگاه خواستید حلقهای برای عملیات رایج بنویسید، بررسی کنید آیا تابع داخلیای وجود دارد که کار را بهتر انجام دهد.
۲. از List Comprehension استفاده کنید، اما خوانا نگهش دارید
تکنیک List Comprehension راهی مختصر و اغلب سریعتر برای ایجاد لیستها از دادههای موجود است.
به جای این:
این روش با هر بار فراخوانی .append() سربار ایجاد میکند.
این کار را انجام دهید:
تکنیک List Comprehension کل عملیات را در یک خط بیان میکند، سریعتر اجرا میشود و خواناتر است.
نکته: اگر منطق پیچیده شد، برای وضوح از حلقه معمولی یا مراحل سادهتر استفاده کنید.
۳. از مجموعهها (Set) و دیکشنریها برای جستجوی سریع استفاده کنید
برای جستجوی سریع، مجموعهها و دیکشنریها به دلیل استفاده از جدول هش، بسیار کارآمدتر از لیستها هستند.
به جای این:
این روش زمان خطی O(n) دارد.
این کار را انجام دهید:
با استفاده از مجموعه (Set)، جستجو در زمان ثابت O(1) انجام میشود. برای دادههای بزرگ، این روش بسیار سریعتر است.
۴. از ژنراتورها برای پردازش دادههای بزرگ استفاده کنید
برای دادههای بزرگ، بارگذاری همه چیز در حافظه میتواند برنامه را کند یا متوقف کند. ژنراتورها با تولید مقادیر بهصورت تکتک، حافظه را بهینه مصرف میکنند.
به جای این:
این روش کل فایل را در حافظه بارگذاری میکند که برای فایلهای بزرگ مشکلساز است.
این کار را انجام دهید:
این روش با استفاده از ژنراتور، خط به خط پردازش میکند و حافظه کمی مصرف میکند.
۵. عملیاتهای سنگین را در حلقهها تکرار نکنید
عملیاتهای سنگین که به متغیر حلقه وابسته نیستند، باید خارج از حلقه انجام شوند.
به جای این:
این روش دو عملیات سنگین (کامپایل regex و گرفتن زمان فعلی) را در هر تکرار انجام میدهد.
این کار را انجام دهید:
این روش عملیاتهای سنگین را یک بار خارج از حلقه انجام میدهد و کارایی را بهبود میبخشد.
۶. از += برای رشتهها در حلقهها استفاده نکنید
استفاده از += برای ساخت رشتهها در حلقه ناکارآمد است، زیرا رشتهها در پایتون غیرقابل تغییر هستند و هر بار یک رشته جدید ایجاد میشود.
به جای این:
این روش با هر += یک رشته جدید ایجاد میکند که هزینهبر است.
این کار را انجام دهید:
این روش با جمعآوری تکههای رشته در یک لیست و اتصال نهایی، کارایی را افزایش میدهد.
جمعبندی
نوشتن کد کارآمد در پایتون نیازی به دانش پیشرفته ندارد. کافی است تکنیکهای مناسب را در موقعیتهای رایج به کار ببرید:
- استفاده از توابع داخلی به جای پیادهسازی دستی
- استفاده از List Comprehension برای تبدیلهای شفاف و کارآمد
- انتخاب ساختار داده مناسب (مجموعهها و دیکشنریها) برای جستجو
- استفاده از ژنراتورها برای پردازش دادههای بزرگ
- انتقال عملیاتهای ثابت به خارج از حلقهها
- ساخت رشتهها با استفاده از لیست و اتصال نهایی
خوانایی کد همچنان باید در اولویت باشد. خوشبختانه، بسیاری از این تکنیکها کد را نهتنها کارآمدتر، بلکه خواناتر نیز میکنند. نکاتی که گفته شد تمام نکات مهم برای کدنویسی تمیز نبودند اما برای شروع کار بد نیست آنها را رعایت کنید. برای آشنایی با تمام نکات کدنویسی تمیز میتوانید در دوره کامل پایتون شرکت کنید. امیدوارم این نکات به شما در مسیر تبدیل شدن به برنامهنویسی بهتر در پایتون کمک کند. به کدنویسی ادامه دهید!
دیدگاهتان را بنویسید