۴ روش برای افزایش خوانایی کد پایتون
یکی از ویژگیهای خوب پایتون استفاده راحت از این زبان برنامهنویسی است. زبان پایتون همیشه تلاش کرده که کدهای روانتر، زیباتر و خواناتری را برای توسعه برنامهها فراهم کند. در این مقاله قصد دارم که چهار ترفند برای افزایش خوانایی کد پایتون را به شما نشان دهم.
استفاده از enumerate()
به جای range(len())
باعث افزایش خوانایی کد پایتون میشود.
ممکن است در کدنویسی نیاز باشد که همزمان به اندیسها و مقادیر یک لیست دسترسی داشته باشیم. روشی که اکثراً استفاده میکنند، ایجاد حلقهای با استفاده از range(len())
است. در این روش چیزی که برگردانده میشود اندیسهای لیست است. سپس با استفاده از این اندیسها باید به مقادیر معادل آن دسترسی پیدا کنیم. برای درک بهتر موضوع مثالی میزنم. فرض کنید در لیست زیر میخواهیم همزمان اندیس و نام کاربر چاپ شود. پس:
اما برای افزایش خوانایی کد پایتون، متد بهتری به نام enumerate()
وجود دارد که شمارندهای را روی یک آرایه ایجاد میکند که همزمان اندیس و مقدار معادل آن را باز میگرداند. مثال بالا را با این متد به صورت زیر میتوان پیاده سازی کرد:
در صورتی که بخواهید اندیسها را از عددی غیر از صفر شروع کنید میتوانید از آرگومان start=
استفاده کنید.
برای افزایش خوانایی کد پایتون عناصر یک دیکشنری را به جای براکت، با متد .get()
فراخوانی کنید.
دیکشنری زیر را که به مشخصات من اشاره دارد در نظر بگیرید:
اگر بخواهیم به مقدار سن محمد در این دیکشنری دسترسی داشته باشیم به طور معمول از کد mohammad["age"]
استفاده میکنیم. اما این روش یک مشکل اساسی دارد و آن این است که اگر به کلیدی اشاره کنید که در دیکشنری وجود ندارد برای مثال mohammad["location"]
با خطای KeyError
پایتون مواجه میشوید.
معمولاً برای کنترل این خطا از بلوک try-except
استفاده میکنند. اما چرا به جای این روش از متد .get()
استفاده نمیکنید تا در صورتی که کلیدی وجود نداشت برای شما مقدار None
را برگرداند؟
برای افزایش خوانایی کد پایتون، برای ایجاد شمارنده روی چند لیست از تابع zip()
استفاده کنید.
گاهی اوقات لازم میشه که روی اعضای چند آرایه با هم(مثل لیستها) شمارندهای ایجاد کنیم. این کار را میتوانیم با استفاده از range(len(collection))
انجام بدیم، اما این روش کمی خوانایی کد را کم میکنه.مثال زیر را ببینید:
در این مثال خروجی ما لیستی از تاپلهاست که اعضای آن همان اعضای لیستهای اولیه ما میباشد. این یک روش خوب برای انجام این کار هست اما تا وقتی که تعداد آیتمهای هر لیست زیاد نشده باشه. وقتی که تعداد آیتمها زیاد میشه این روش دست و پا گیر میشه. به جای این روش بهتر هست از تابع پیش ساختهای در پایتون یعنی zip()
استفاده کنید. برای درک موضوع همان مثال بالا را با استفاده از تابع بازنویسی میکنم:
میبینید که این روش خیلی خواناتر هست. فقط این نکته را مد نظر قرار دهید که متد zip یک شی از نوع zip بازمیگرداند، که با استفاده از روشهای صریح پایتون میتوانید آن را به انواع دیگر تبدیل کنید. در مثال بالا من از متد list()
برای تبدیل شی zip به یک لیست استفاده کردم.
حتی میتونیم پا را فراتر بذاریم و با استفاده از این متد یک دیکشنری را به صورت key:value از دو آرایه مستقیماً ایجاد کنیم. در مثال زیر میخواهیم از دو آرایه نام و سن استفاده کنم و یک دیکشنری با اعضای به صورت name:age ایجاد کنم.
دقت کنید که در این روش اگه بیشتر از دو آرایه برای ایجاد دیکشنری استفاده کنید با خطای ValueError
مواجه میشوید.
برای چاپ در کنسول از f-strings
استفاده کنید.
از پایتون ۳.۸ به بعد، میتوانیم با استفاده از f-string برای مستندسازی کد خودمان از کاراکتر =
استفاده کنیم. به این معنی که دیگر نیازی نیست وقتی که در حال چاپ رشتهای یا مقداری در کنسول هستیم آنرا به صورت f"variable_name = {variable_name}"
کدنویسی کنیم. مثال زیر را ببینید:
همین کد را با استفاده از روش بالا میتوانیم به صورت زیر بازنویسی کنیم:
این یک تغییر ظریف و کوچک است ، اما خواندن کد شما را کمی راحتتر می کند و مطمئناً شما را کمی از تکرار نجات می دهد!
سعی کردم در این پست webpy روشهایی را برای افزایش خوانایی کد پایتون تقدیم شما کنم. در صورتی که روشهای دیگری را برای افزایش خوانایی کد پایتون میشناسید از طریق دیدگاه همین پست با دوستان خود به اشتراک بگذارید. خوشحال میشم از تجربیات شما بزرگواران استفاده کنم. موفق باشید.
دیدگاهتان را بنویسید