کامنت در پایتون متنی توضیحی درون اسکریپت است که مفسر هنگام اجرای برنامه آن را نادیده میگیرد. در کنار انتخاب نامهای واضح برای متغیرها و توابع، نوشتن کامنت مستقیماً به درک منطق کد کمک میکند. کامنتها به سه شکل تکخطی، چندخطی و رشتههای مستندسازی (Docstring) نوشته میشوند.
زبان برنامه نویسی پایتون سینتکس ساده و کدهای خوانایی دارد، اما الگوریتمهای پیچیده به توضیحات متنی نیاز دارند. به همین دلیل، یادگیری مستندسازی و نوشتن توضیحات در کد از نخستین گامهای آموزش پایتون است. این مهارت به نگهداری کد و کار تیمی در پروژههای برنامهنویسی کمک میکند.
کامنت در پایتون چیست و چه کاربردی دارد؟
کامنتها یادداشتهای غیرقابلاجرایی در اسکریپت هستند که برای توسعهدهندگان نوشته میشوند. نبود کامنت زمانی مشکلساز میشود که تحت فشار زمانی کدی مینویسید و ۶ ماه بعد برای افزودن قابلیتی جدید به آن برمیگردید، اما منطق کد خودتان را به یاد نمیآورید.

در کار تیمی هم همین مشکل رخ میدهد. مثلاً پروژهای کوچک در مسیر برنامه نویسی جنگو به ۲۰ هزار خط کد جنگو (Django) تبدیل میشود و توسعهدهندگان جدید ساعتها برای درک متغیرها و ارتباط بخشهای آن زمان از دست میدهند. کامنت چهار کاربرد اصلی دارد:
- افزایش خوانایی کد: فرمولها، روشها و منطق تجاری پیچیده را توضیح میدهد تا نحوه کار برنامه سریعتر فهمیده شود.
- جلوگیری از اجرای کد: بخشی از دستورات را هنگام تست و دیباگ موقتاً غیرفعال میکند تا خطاها را ایزوله کنید.
- ارائه متادیتا: اطلاعات کلی پروژه، مجوزها (Licensing) و کپیرایت را در ابتدای فایل درج میکند.
- افزودن منابع: لینکها و مراجع بیشتری برای درک بهتر بخشهای خاص اسکریپت معرفی میکند.
برای مثال، هنگام عیبیابی میتوانید با قرار دادن علامت # از اجرای یک خط جلوگیری کنید:
# print("This line is commented out and won't execute")
print("This line runs and will print to console")
نحوه نوشتن کامنت تکخطی و درونخطی در پایتون
کامنت تکخطی در پایتون با نماد هشتگ (#) شروع میشود. مفسر پایتون تمام کاراکترهای بعد از این نماد را تا انتهای همان خط نادیده میگیرد. این ساختار برای نوشتن توضیحات کوتاه بالای متغیرها، توابع یا عبارات کاربرد دارد:
# This is a single-line comment
print("Hello, World!")
خروجی:
Hello, World!
کامنت میتواند یک خط مستقل داشته باشد یا در انتهای یک دستور اجرایی، در همان خط قرار بگیرد. حالت دوم را کامنت درونخطی (Inline) مینامند. برای حفظ خوانایی، باید آن را با حداقل یک فاصله (Space) از کد اصلی جدا کنید:
print("This is not a comment") # This is an inline comment
خروجی:
This is not a comment
در این حالت، مفسر ابتدا دستور print را اجرا میکند و به محض رسیدن به علامت #، ادامه خط را نادیده میگیرد.
روشهای نوشتن کامنت چندخطی در پایتون
برخلاف زبانهای C، آموزش زبان جاوا و آموزش زبان go، پایتون عملگر یا سینتکس داخلی اختصاصی، مانند /* */، برای نوشتن کامنت چندخطی ندارد. اگر کامنتی را با علامت # شروع کنید و توضیحات را بدون هیچ علامتی در خط بعدی ادامه دهید، مفسر فقط خط اول را نادیده میگیرد و برای خطوط بعدی خطای Syntax Error برمیگرداند.
برای نوشتن توضیحات طولانی در چند خط یا غیرفعال کردن یک بلوک کد، دو روش جایگزین وجود دارد: قرار دادن علامت هشتگ در ابتدای چند خط متوالی و استفاده از رشتههای متنی با کوتیشن سهتایی.
استفاده از چند علامت هشتگ (#) متوالی
رایجترین و استانداردترین روش نوشتن کامنت چندخطی در پایتون این است که ابتدای هر خط جدید علامت هشتگ (#) بگذارید. وقتی توضیحات طولانی میشود و با زدن کلید Enter به خط بعدی میروید، خط جدید را هم با # شروع کنید.
مفسر پایتون هرکدام از این خطوط را یک کامنت تکخطی مستقل میداند و محتوای آن را تا انتهای همان خط نادیده میگیرد:
# This is a comment
# written in
# more than just one line
print("Multiline comments")
استفاده از رشتههای متنی و کوتیشن سهتایی
روش دوم این است که متن یا بلوک کد را درون سه علامت کوتیشن متوالی (”’ یا “””) قرار دهید. علامتهای شروع و پایان باید دقیقاً از یک نوع باشند؛ یعنی اگر متن را با تککوتیشن سهتایی آغاز کردید، باید آن را با همان علامت ببندید.
از نظر فنی، این ساختار یک رشته متنی بدون متغیر (String Literal) است و با کامنت واقعی تفاوت دارد. مفسر، رشتههای متنی (str) در پایتون را وقتی به هیچ متغیری اختصاص ندارند و فراخوانی نمیشوند، هنگام اجرا نادیده میگیرد. این عبارات وارد بایتکد (ByteCode) نهایی نمیشوند و به همین دلیل، عملاً کارکردی مشابه کامنت چندخطی دارند.
"""
This is a multi-line comment
using a triple-quoted string.
"""
print("Hello, Python!")
رفتار پایتون به محل قرارگیری این کوتیشنهای سهتایی بستگی دارد. اگر آنها را بلافاصله بعد از تعریف یک تابع، کلاس، متد یا ماژول بنویسید، پایتون متن را نادیده نمیگیرد و آن را بهعنوان Docstring به آن شیء متصل میکند. اگر درباره محل استفاده تردید دارید، ابتدای هر خط علامت # بگذارید تا کامنت ناخواسته به Docstring تبدیل نشود.
کلید میانبر کامنت کردن چند خط در پایتون
برای غیرفعال کردن موقت چند خط کد هنگام خطایابی، لازم نیست علامت # را دستی در ابتدای هر سطر بنویسید. در محیطهای توسعه و ویرایشگرهایی مانند Visual Studio Code، خطوط موردنظر را انتخاب کنید و میانبر کامنت کردن، یعنی Ctrl + / در ویندوز یا Cmd + / در مک را بفشارید. با تکرار همین میانبر، خطوط انتخابشده از حالت کامنت خارج (Uncomment) میشوند. روش دیگر این است که چند نشانگر (Cursor) را همزمان در ابتدای خطوط فعال کنید و علامت # را یکجا بنویسید.

# This is the first line commented out
# This is the second line commented out
# print("These lines are not executed")
تفاوت کامنت معمولی با داکاسترینگ (Docstring) در پایتون
داکاسترینگ (Docstring) رشتهای درون کوتیشنهای سهتایی (“”” “”” یا ”’ ”’) است. این رشته بلافاصله در خط اول زیر تعریف تابع، کلاس، متد یا ماژول قرار میگیرد و عملکرد و رفتار آن را مستند میکند.

تفاوت اصلی کامنت و داکاسترینگ به رفتار مفسر برمیگردد. مفسر هنگام ترجمه اسکریپت، کامنتهای معمولی با # را نادیده میگیرد و حذف میکند. داکاسترینگها مستقیماً به شیء موردنظر متصل میمانند و در زمان اجرای برنامه (Runtime)، از طریق ویژگی __doc__ و تابع help() در دسترس هستند.
در قطعه کد زیر، نحوه نوشتن Docstring در بدنه تابع و فراخوانی آن در خروجی را میبینید:
def add(x, y):
"""This function adds the values of x and y"""
return x + y
print(add.__doc__)
خروجی:
This function adds the values of x and y
جدول زیر تفاوتهای فنی کامنت معمولی و داکاسترینگ را نشان میدهد:
| ویژگی | کامنت معمولی (#) | داکاسترینگ (“”” “””) |
|---|---|---|
| سینتکس | شروع خط با نماد # | محصور در کوتیشن سهتایی |
| محل قرارگیری | هر جای کد یا انتهای خطوط اجرایی | بلافاصله در خط اول زیر تعریف تابع، کلاس، متد یا ماژول |
| رفتار مفسر | نادیده گرفتن کامل در زمان اجرا | اتصال رشته مستند به شیء مربوطه |
| دسترسی در زمان اجرا | غیرقابل دسترس | قابل فراخوانی با ویژگی __doc__ و تابع help() |
اصول و استانداردهای نوشتن کامنت تمیز در پایتون
کامنت مؤثر کوتاه، دقیق و مرتبط است و بدون شلوغ کردن کد، به درک برنامه کمک میکند. کامنتگذاری بیش از حد خوانایی را کاهش میدهد. برای حفظ تعادل و کیفیت کد، باید سه اصل را رعایت کنید: قالببندی استاندارد، تمرکز بر منطق کد و نشانهگذاری وظایف.
رعایت استاندارد PEP ۸ و تورفتگیها
استاندارد PEP ۸ حداکثر طول هر خط کد را ۷۹ کاراکتر تعیین کرده است. برای کامنتهای درونخطی و Docstring نیز حداکثر ۷۲ کاراکتر در هر خط را توصیه میکند. اگر طول توضیحات به این عدد نزدیک شد یا از آن عبور کرد، باید کامنت را به چند خط تقسیم کنید.

در کامنتهای بلوکی (Block Comments)، رعایت تورفتگی (Indentation) هم ضروری است. کامنت باید دقیقاً همتراز با سطح بلوک کدی باشد که آن را توضیح میدهد تا ساختار بصری اسکریپت حفظ شود و دنبال کردن منطق برنامه برای خواننده آسانتر باشد.
توضیح چرایی کد بهجای چگونگی آن (پرهیز از کامنتهای WET)
کامنتهای تمیز «چرایی» تصمیمهای برنامهنویس و دلیل منطقی کد را توضیح میدهند و به شرح «چگونگی» اجرای دستورات نمیپردازند. کامنتهای تکراری (WET) فقط خود کد را به فارسی یا انگلیسی ترجمه میکنند و توضیح واضحات هستند؛ از نوشتن آنها خودداری کنید. از درج یادداشتهای بیادبانه و غیرحرفهای در اسکریپت نیز بپرهیزید.
توانایی تشخیص مرز میان کامنت ضروری و توضیحات اضافهای که فقط صفحه را شلوغ میکنند، با کدنویسی عملی و حل تمرین پایتون در سناریوهای واقعی شکل میگیرد. تفاوت دو رویکرد را در نمونه زیر ببینید:
i = 0
# BAD: Increment i by 1
i += 1
# GOOD: Handle edge case where i needs manual increment
i += 1
استفاده از کامنتهای نشانهگذار مثل TODO
توسعهدهندگان در پروژههای تیمی و متنباز از برچسبهای استانداردی مانند TODO و FIXME در کامنتها استفاده میکنند. این نشانهگذارها به شما و سایر توسعهدهندگان کمک میکنند بخشهایی از کد را که در آینده به بهینهسازی، تکمیل یا رفع باگ نیاز دارند، سریع پیدا و پیگیری کنید:
# TODO: Optimize this loop for large datasets
for i in range(10000):
print(i)
کامنت TODO در این نمونه یادآوری میکند که منطق حلقه فعلی برای دادههای حجیم بهینه نیست و باید در نسخههای بعدی اصلاح شود.
برای تسلط بر سینتکس و اصول کدنویسی استاندارد، میتوانید یادگیری را با دوره مقدماتی پایتون ادامه دهید.