{"id":25020,"date":"2020-01-21T12:15:19","date_gmt":"2020-01-21T10:15:19","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=25020"},"modified":"2020-06-23T14:56:51","modified_gmt":"2020-06-23T11:56:51","slug":"how-to-comment-code-in-python-inline-multiline-and-docstring","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/","title":{"rendered":"How to Comment Code in Python: Inline, Multiline, and Docstring"},"content":{"rendered":"\n<p>As we kick off 2020, I wanted to start getting back to some of my favorite content: Python \u201chow to\u201d content. Today, we\u2019ll be looking at how to comment code in Python\u2014a skill we should all have.<\/p>\n\n\n\n<p><strong>To summarize, there are three main ways to make comments in Python. To make inline comments, use the hash mark, <code>#<\/code>. To make multiline comments, use a hash mark on every line. Alternatively, use triple quotes, <code>\"\"\"<\/code>. These kick off a multiline string which can be used to simulate comments. For more details, check out the options below.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem Description<\/h2>\n\n\n\n<p>One thing I\u2019ve done throughout this series is create content that targets a specific issue and address it with a few solutions. Of course, many of those solutions require some fundamental understanding of how Python works. In other words, at no point have I actually written any of those fundamental articles. Well, I suppose it\u2019s better late than never.<\/p>\n\n\n\n<p>Today, I want to look at a few ways of commenting code in Python. For those that don\u2019t know, comments are ways of documenting code directly. Specifically, a comment is text that has no semantic affect on your programs. In other words, comments don\u2019t do anything but provide context for the reader.<\/p>\n\n\n\n<p>As an example, we might want to write some mathematical expression like the Pythagorean Theorem:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_980199\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">a_squared = <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">b_squared = <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">c_squared = a_squared + b_squared<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Clearly, this expression resembles the Pythagorean Theorem based on variable name choices alone. However, not everyone will be able to tell at first glance. In other words, we might want to add a comment that tells the reader what the purpose of this expression is. For example, we might say \u201cuses the Pythagorean Theorem to compute c^2.\u201d How do we go about doing that? Luckily, this article will give us a few options.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solutions<\/h2>\n\n\n\n<p>In this portion of the article, we\u2019ll take a look at a few different ways to write comments in Python. Keep in mind that this isn\u2019t really an article on commenting styles or even a commentary on how to write comments. Instead, we\u2019ll just be sharing the syntax. It\u2019s up to you to figure out how you want to use the tools provided.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Inline Comments<\/h3>\n\n\n\n<p>In Python, you can create a comment using the hash mark, <code>#<\/code>. As soon as this mark appears, everything following it until the end of the line is considered a comment:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_942988\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Uses the Pythagorean Theorem to compute c^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">a_squared = <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">b_squared = <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">c_squared = a_squared + b_squared<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Since comments don\u2019t start until the hash mark appears, we can comment the ends of lines as well:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_251882\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Uses the Pythagorean Theorem to compute c^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">a_squared = <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code>&nbsp; <code class=\"java plain\"># Computes a^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">b_squared = <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code>&nbsp; <code class=\"java plain\"># Computes b^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">c_squared = a_squared + b_squared&nbsp; # Computes c^<\/code><code class=\"java value\">2<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Normally, I\u2019m of the belief that your code should be primarily self-documenting. That said, an inline comment here and there can be helpful for future readers\u2014including yourself.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Block Comments Using Inline Comments<\/h3>\n\n\n\n<p>Fun fact: <strong>Python doesn\u2019t have block comments<\/strong>. In other words, there is no built-in syntax for handling multiline comments. As a result, <a href=\"https:\/\/www.python.org\/dev\/peps\/pep-0008\/#comments\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"PEP 8 (opens in a new tab)\">PEP 8<\/a> recommends using repeated inline comments for block comments:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_26116\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Uses the Pythagorean Theorem to compute c^<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">.<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\"># First, we compute a^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">and b^<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">. Then, the <\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\"># expression is constructed as a^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">+ b^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">and <\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># assigned to c^<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">.<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">a_squared = <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code>&nbsp; <code class=\"java plain\"># Computes a^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\">b_squared = <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code>&nbsp; <code class=\"java plain\"># Computes b^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">c_squared = a_squared + b_squared&nbsp; # Computes c^<\/code><code class=\"java value\">2<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Again, these comments are probably excessive; their role is to provide an example of a block comment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Block Comments Using Multiline Strings<\/h3>\n\n\n\n<p>With all that said, it\u2019s possible to simulate block comments with multiline strings:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_601428\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java plain\">Uses the Pythagorean Theorem to compute c^<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">.<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\">First, we compute a^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">and b^<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">. Then, the <\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\">expression is constructed as a^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">+ b^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">and <\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\">assigned to c^<\/code><code class=\"java value\">2<\/code><code class=\"java plain\">.<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\">a_squared = <\/code><code class=\"java value\">3<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code>&nbsp; <code class=\"java plain\"># Computes a^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\">b_squared = <\/code><code class=\"java value\">4<\/code><code class=\"java plain\">**<\/code><code class=\"java value\">2<\/code>&nbsp; <code class=\"java plain\"># Computes b^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\">c_squared = a_squared + b_squared&nbsp; # Computes c^<\/code><code class=\"java value\">2<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Now, that looks a little cleaner to me. In addition, it\u2019s a bit easier to manage in source code in my opinion.<\/p>\n\n\n\n<p>That said, keep in mind that this isn\u2019t a true comment. We\u2019ve instead created a string constant which isn\u2019t assigned to a variable. In practice, this isn\u2019t really an issue as the strings will get optimized out in the bytecode.<\/p>\n\n\n\n<p>Another word of caution: sometimes this style of comment can be interpreted as a docstring. For example, if we insert this comment just below a function header, we\u2019ll have created a docstring for documentation purposes:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_620554\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">def pythagorean_theorem(a, b):<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">Computes the length of the squared third leg of a right triangle.<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">a_squared = a**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">b_squared = b**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">c_squared = a_squared + b_squared<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">c_squared<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>In this example, our multiline comment is actually a docstring which we can use to document the method:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_615719\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">def pythagorean_theorem(a, b):<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">Computes the length of the squared third leg of a right triangle.<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">:param a: the length of the first leg of the triangle<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">:param b: the length of the second leg of the triangle<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">:<\/code><code class=\"java keyword\">return<\/code><code class=\"java plain\">: a^<\/code><code class=\"java value\">2<\/code> <code class=\"java plain\">+ b^<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">a_squared = a**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">b_squared = b**<\/code><code class=\"java value\">2<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java plain\">c_squared = a_squared + b_squared<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java spaces\">&nbsp;&nbsp;<\/code><code class=\"java keyword\">return<\/code> <code class=\"java plain\">c_squared<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Then, this docstring becomes a runtime attribute of the function. In other words, we can inspect that attribute as follows:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_185569\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\">print(pythagorean_theorem.__doc__)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As you can see, docstrings aren\u2019t like comments in the sense that docstrings still exist at runtime\u2014regular comments do not. Many IDEs and other tools can then extract these docstrings for documentation purposes. How cool is that?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Challenge<\/h2>\n\n\n\n<p>At this point, I\u2019d usually measure performance, but I didn\u2019t feel like that would be applicable. Instead, let\u2019s jump straight to the challenge!<\/p>\n\n\n\n<p>Now that we know three different ways to comment code in Python, let\u2019s talk about good commenting practices. In the comments below, share at least one tip you recommend when it comes to commenting code. Feel free to share anything from commenting styles to commenting etiquette. Bonus points for anything that\u2019s Python specific.<\/p>\n\n\n\n<p>As always, I\u2019ll share my own tip below as well! If possible, I\u2019d love to get a little discussion going. Depending on how it goes, I might compile the results in another article.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Little Recap<\/h2>\n\n\n\n<p>And with that, we\u2019re all done. As always, here\u2019s a little recap of our three ways to comment Python code:<\/p>\n\n\n\n<div>\n<div id=\"highlighter_144806\" class=\"syntaxhighlighter  java\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"java plain\"># Here is an inline comment in Python<\/code><\/div>\n<div class=\"line number2 index1 alt1\">&nbsp;<\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"java plain\"># Here<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"java plain\"># is<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"java plain\"># a<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"java plain\"># multiline<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"java plain\"># comment<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"java plain\"># in<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"java plain\"># Python<\/code><\/div>\n<div class=\"line number10 index9 alt1\">&nbsp;<\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"java plain\">Here is another multiline comment in Python.<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"java plain\">This is sometimes interpretted as a docstring,<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"java plain\">so be careful where you put these.<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"java string\">\"\"<\/code><code class=\"java plain\">\"<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Web Code Geeks with permission by Jeremy Grifski, partner at our <a href=\"\/\/www.webcodegeeks.com\/join-us\/wcg\/\" target=\"_blank\" rel=\"noopener noreferrer\">WCG program<\/a>. See the original article here: <a href=\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/\" target=\"_blank\" rel=\"noopener noreferrer\">How to Comment Code in Python: Inline, Multiline, and Docstring<\/a><\/p>\n<p>Opinions expressed by Web Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>As we kick off 2020, I wanted to start getting back to some of my favorite content: Python \u201chow to\u201d content. Today, we\u2019ll be looking at how to comment code in Python\u2014a skill we should all have. To summarize, there are three main ways to make comments in Python. To make inline comments, use the &hellip;<\/p>\n","protected":false},"author":14722,"featured_media":1651,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[],"class_list":["post-25020","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Comment Code in Python: Inline, Multiline, and Docstring - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn about Comment Code? Check our article explaining thoroughly how to comment code in Python with examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Comment Code in Python: Inline, Multiline, and Docstring - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Comment Code? Check our article explaining thoroughly how to comment code in Python with examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-21T10:15:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-23T11:56:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Grifski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@RenegadeCoder94\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Grifski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/\"},\"author\":{\"name\":\"Jeremy Grifski\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1\"},\"headline\":\"How to Comment Code in Python: Inline, Multiline, and Docstring\",\"datePublished\":\"2020-01-21T10:15:19+00:00\",\"dateModified\":\"2020-06-23T11:56:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/\"},\"wordCount\":900,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/\",\"url\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/\",\"name\":\"How to Comment Code in Python: Inline, Multiline, and Docstring - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"datePublished\":\"2020-01-21T10:15:19+00:00\",\"dateModified\":\"2020-06-23T11:56:51+00:00\",\"description\":\"Interested to learn about Comment Code? Check our article explaining thoroughly how to comment code in Python with examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Comment Code in Python: Inline, Multiline, and Docstring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1\",\"name\":\"Jeremy Grifski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g\",\"caption\":\"Jeremy Grifski\"},\"description\":\"Jeremy is the founder of The Renegade Coder, a software curriculum website launched in 2017. In addition, he is a PhD student with an interest in education and data visualization.\",\"sameAs\":[\"https:\/\/therenegadecoder.com\/\",\"https:\/\/www.linkedin.com\/in\/jeremy-grifski-22240552\/\",\"https:\/\/x.com\/RenegadeCoder94\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/jeremy-grifski\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Comment Code in Python: Inline, Multiline, and Docstring - Web Code Geeks - 2026","description":"Interested to learn about Comment Code? Check our article explaining thoroughly how to comment code in Python with examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/","og_locale":"en_US","og_type":"article","og_title":"How to Comment Code in Python: Inline, Multiline, and Docstring - Web Code Geeks - 2026","og_description":"Interested to learn about Comment Code? Check our article explaining thoroughly how to comment code in Python with examples.","og_url":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2020-01-21T10:15:19+00:00","article_modified_time":"2020-06-23T11:56:51+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","type":"image\/jpeg"}],"author":"Jeremy Grifski","twitter_card":"summary_large_image","twitter_creator":"@RenegadeCoder94","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Jeremy Grifski","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/"},"author":{"name":"Jeremy Grifski","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1"},"headline":"How to Comment Code in Python: Inline, Multiline, and Docstring","datePublished":"2020-01-21T10:15:19+00:00","dateModified":"2020-06-23T11:56:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/"},"wordCount":900,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","articleSection":["Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/python\/how-to-comment-code-in-python-inline-multiline-and-docstring\/","url":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/","name":"How to Comment Code in Python: Inline, Multiline, and Docstring - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage"},"image":{"@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","datePublished":"2020-01-21T10:15:19+00:00","dateModified":"2020-06-23T11:56:51+00:00","description":"Interested to learn about Comment Code? Check our article explaining thoroughly how to comment code in Python with examples.","breadcrumb":{"@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/11\/python-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/therenegadecoder.com\/code\/how-to-comment-code-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/www.webcodegeeks.com\/category\/python\/"},{"@type":"ListItem","position":3,"name":"How to Comment Code in Python: Inline, Multiline, and Docstring"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/7eaa8e89cf23a5de82a048beb4c59aa1","name":"Jeremy Grifski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9d50311a27dff0a54d775b6106b8f804d5d11d0b5182ed537f325046a020c6f5?s=96&d=mm&r=g","caption":"Jeremy Grifski"},"description":"Jeremy is the founder of The Renegade Coder, a software curriculum website launched in 2017. In addition, he is a PhD student with an interest in education and data visualization.","sameAs":["https:\/\/therenegadecoder.com\/","https:\/\/www.linkedin.com\/in\/jeremy-grifski-22240552\/","https:\/\/x.com\/RenegadeCoder94"],"url":"https:\/\/www.webcodegeeks.com\/author\/jeremy-grifski\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/25020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/14722"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=25020"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/25020\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/1651"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=25020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=25020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=25020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}