docstrings-in-python

“`html

Docstrings in Python are unique text elements used to explain the functionality of a function, class, or module within your Python script. They are formulated within triple quotes immediately following the definition. Docstrings assist in grasping the intent of the Python code without having to examine each individual line. In contrast to standard comments, docstrings can be retrieved through the help() function. Utilizing docstrings enhances code clarity and readability. This article will guide you through the implementation, formatting, and usage of docstrings comprehensively, along with examples.

Table Of Contents

What are Docstrings in Python?

This segment will introduce you to docstrings and highlight how they are distinct from general Python comments. Docstrings, also known as documentation strings, are string literals that are placed as the first statement within a function, class, or module. While comments are entirely disregarded during execution, docstrings are preserved within a unique attribute named __doc__, making them accessible in the program.

For Example:

Python

Code Copied!

var isMobile = window.innerWidth “);

editor86291.setValue(decodedContent); // Set the default text editor86291.clearSelection();

editor86291.setOptions({ maxLines: Infinity });

function decodeHTML86291(input) { var doc = new DOMParser().parseFromString(input, “text/html”); return doc.documentElement.textContent; }

// Function to copy code to clipboard function copyCodeToClipboard86291() { const code = editor86291.getValue(); // Get code from the editor navigator.clipboard.writeText(code).then(() => { // alert(“Code copied to clipboard!”);

jQuery(“.maineditor86291 .copymessage”).show(); setTimeout(function() { jQuery(“.maineditor86291 .copymessage”).hide(); }, 2000); }).catch(err => { console.error(“Error copying code: “, err); }); }

function runCode86291() {

var code = editor86291.getSession().getValue();

jQuery(“#runBtn86291 i.run-code”).show(); jQuery(“.output-tab”).click();

jQuery.ajax({ url: “https://intellipaat.com/blog/wp-admin/admin-ajax.php”, type: “post”,

data: { language: “python”, code: code, cmd_line_args: “”, variablenames: “”, action:”compilerajax” }, success: function(response) { var myArray = response.split(“~”); var data = myArray[1];

jQuery(“.output86291”).html(“

"+data+"");
									jQuery(".maineditor86291 .code-editor-output").show();
									jQuery("#runBtn86291 i.run-code").hide();
									
								}
							})

						}
						
						
		function closeoutput86291() {	
		var code = editor86291.getSession().getValue();
		jQuery(".maineditor86291 .code-editor-output").hide();
		}

    // Attach event listeners to the buttons
    document.getElementById("copyBtn86291").addEventListener("click", copyCodeToClipboard86291);
    document.getElementById("runBtn86291").addEventListener("click", runCode86291);
    document.getElementById("closeoutputBtn86291").addEventListener("click", closeoutput86291);
 
    

Output:

Docstrings in Python

Explanation: The function will display a greeting and return its documentation via the __doc__. This illustrates that Python retains the docstrings for later retrieval and application.

Why Use Docstrings in Python?

Docstrings in Python assist in comprehending what... ``````html

Each element of your code operates without delving into the implementation details. They will furnish metadata for documentation tools and robust IDE functionalities, such as the hover-to-view assistance feature. Additionally, it will integrate seamless utilities like help() and pydoc.

Illustration:

Python
Code Copied!

"); jQuery(".maineditor51648 .code-editor-output").show(); jQuery("#runBtn51648 i.run-code").hide(); } }); }

function closeoutput51648() { jQuery(".maineditor51648 .code-editor-output").hide(); }

// Attach event listeners to the buttons document.getElementById("copyBtn51648").addEventListener("click", copyCodeToClipboard51648); document.getElementById("runBtn51648").addEventListener("click", runCode51648); document.getElementById("closeoutputBtn51648").addEventListener("click", closeoutput51648);

Result:

Why Use Docstrings in Python

Clarification: The help function retrieves and shows the docstring along with the organized documentation without inspecting the source code.

Categories of Python Docstrings

This section will enlighten you on the diverse varieties of docstrings that Python supports for modules, functions, and classes.

1. Module Docstring in Python

The module-level docstring in Python outlines the functionalities offered by a Python file.

Illustration:

Python

Code Copied!

var isMobile = window.innerWidth ");

editor632.setValue(decodedContent); // Set the default text editor632.clearSelection();

editor632.setOptions({ maxLines: Infinity });

function decodeHTML632(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }

// Function to copy code to clipboard function copyCodeToClipboard632() { const code = editor632.getValue(); // Retrieve code from the editor navigator.clipboard.writeText(code).then(() => { jQuery(".maineditor632 .copymessage").show(); setTimeout(function() { jQuery(".maineditor632 .copymessage").hide(); }, 2000); }).catch(err => { console.error("Error copying code: ", err); }); }

function runCode632() { var code = editor632.getSession().getValue(); // Other code to execute the run } ``````javascript i.run-code").show(); jQuery(".output-tab").click();

jQuery.ajax({ url: "https://intellipaat.com/blog/wp-admin/admin-ajax.php", type: "post",

data: { language: "python", code: code, cmd_line_args: "", variablenames: "", action:"compilerajax" }, success: function(response) { var myArray = response.split("~"); var data = myArray[1];

jQuery(".output632").html("

"+data+"");
									jQuery(".maineditor632 .code-editor-output").show();
									jQuery("#runBtn632 i.run-code").hide();	
								}
							})
						}

function closeOutput632() { var code = editor632.getSession().getValue(); jQuery(".maineditor632 .code-editor-output").hide(); }

// Add event handlers to the buttons document.getElementById("copyBtn632").addEventListener("click", copyCodeToClipboard632); document.getElementById("runBtn632").addEventListener("click", runCode632); document.getElementById("closeOutputBtn632").addEventListener("click", closeOutput632);

Clarification: In this instance, module-level docstrings encapsulate the file’s intent and are usually positioned at the top of the .py file. Access these using import math_utils, and on the next line, use print(math_utils.__doc__).

2. Function/Method Docstrings

A function in docstrings elucidates the function’s operations, anticipated parameters, return values, and potential exceptions.

For instance:

Python

Code Copied!

var isMobile = window.innerWidth ");

editor98669.setValue(decodedContent); // Set the default text editor98669.clearSelection();

editor98669.setOptions({ maxLines: Infinity });

function decodeHTML98669(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }

// Function to copy code to clipboard function copyCodeToClipboard98669() { const code = editor98669.getValue(); // Retrieve code from the editor navigator.clipboard.writeText(code).then(() => { jQuery(".maineditor98669 .copymessage").show(); setTimeout(function() { jQuery(".maineditor98669 .copymessage").hide(); }, 2000); }).catch(err => { console.error("Error copying code: ", err); }); }

function runCode98669() { var code = editor98669.getSession().getValue();

jQuery("#runBtn98669 i.run-code").show(); jQuery(".output-tab").click();

jQuery.ajax({ url: "https://intellipaat.com/blog/wp-admin/admin-ajax.php", type: "post",

data: { language: "python", code: code, cmd_line_args: "", variablenames: "", action:"compilerajax" }, success: function(response) { var myArray = response.split("~"); var data = myArray[1];

jQuery(".output98669").html("

"+data+"");
									jQuery(".maineditor98669 .code-editor-output").show();
									jQuery("#runBtn98669 i.run-code").hide();	
								}
							})
						}

function closeOutput98669() { var code = editor98669.getSession().getValue(); jQuery(".maineditor98669 .code-editor-output").hide(); }

// Attach event handlers to the buttons document.getElementById("copyBtn98669").addEventListener("click", copyCodeToClipboard98669); document.getElementById("runBtn98669").addEventListener("click", runCode98669); document.getElementById("closeOutputBtn98669").addEventListener("click", closeOutput98669);

Result:

Function Method Docstrings

Clarification: In this context, the function would incorporate a correctly formatted docstring encompassing detailed inputs, outputs, and the fundamental purpose of the function.

3. Class Docstrings in Python

Class docstrings in Python assist in illustrating the purpose and functionalities of the class.

Example:

Python

Code Copied!

var isMobile = window.innerWidth ");

editor21381.setValue(decodedContent); // Assign default text editor21381.clearSelection();

editor21381.setOptions({ maxLines: Infinity });

function decodeHTML21381(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }

// Function to copy code to the clipboard function copyCodeToClipboard21381() { const code = editor21381.getValue(); // Retrieve code from the editor navigator.clipboard.writeText(code).then(() => { // alert("Code has been copied to clipboard!");

jQuery(".maineditor21381 .copymessage").show(); setTimeout(function() { jQuery(".maineditor21381 .copymessage").hide(); }, 2000); }).catch(err => { console.error("Error while copying code: ", err); }); }

function runCode21381() { var code = editor21381.getSession().getValue();

jQuery("#runBtn21381 i.run-code").show(); jQuery(".output-tab").click();

jQuery.ajax({ url: "https://intellipaat.com/blog/wp-admin/admin-ajax.php", type: "post", data: { language: "python", code: code, cmd_line_args: "", variablenames: "", action:"compilerajax" }, success: function(response) { var myArray = response.split("~"); var data = myArray[1];

jQuery(".output21381").html("

"+data+"");
            jQuery(".maineditor21381 .code-editor-output").show();
            jQuery("#runBtn21381 i.run-code").hide();
        }
    });
}

function closeoutput21381() { var code = editor21381.getSession().getValue(); jQuery(".maineditor21381 .code-editor-output").hide(); }

// Attach event listeners to the buttons document.getElementById("copyBtn21381").addEventListener("click", copyCodeToClipboard21381); document.getElementById("runBtn21381").addEventListener("click", runCode21381); document.getElementById("closeoutputBtn21381").addEventListener("click", closeoutput21381);

Output:

Class Docstrings

Explanation: This demonstrates that both the class and method docstrings can be accessed, providing context at structural levels.

Characteristics of Docstrings in Python

This section details the functionalities of using docstrings and the benefits they offer over standard comments in Python.

  • Multi-Line and Organized: Triple quotes facilitate line breaks, allowing comprehensive explanations.
  • Runtime Availability: Docstrings are held in __doc__ and can be retrieved using introspection utilities.
  • Documentation Tool Compatibility: Tools in Python, such as Sphinx, pdoc, and help(), can interpret and present docstrings.
  • Formatting Style Support: Styles like Google, NumPy, and reStructuredText ensure uniformity.
  • Helpful in IDEs: Most contemporary IDEs display docstrings in tooltips, making them readily useful during development.

Comparative Table Between Docstrings and Comments in Python

The following table aids in distinguishing between them.

Feature Docstrings Comments
Purpose Used to outline the functions of modules, functions, and classes in an organized format. Utilized to explain logic or leave notes in code without affecting its execution.
Syntax Docstrings are wrapped in triple quotes like this “””Docstring””” Comments begin with a # symbol.
Scope Linked to classes, modules, and functions and intended for programmatic access. Comments are confined to inline use and are not accessible during execution.
Tool Support Utilized by tools such as help(), IDEs, and documentation creators. Comments are not processed by such tools.
Best Used For When it's necessary to document the “what and why” of your code for users. Offers notes on implementation, to-dos, internal explanations, etc.

Scenarios for Docstrings in Python

The section below presents scenarios for application during your coding sessions.

Scenario 1 (Documenting a data validation utility)

Docstrings can be employed in utility functions that are frequently reused. Here’s an example of validation that verifies whether an input is a legitimate email.

Example:

Python

Code Copied!

editor11155.setValue(decodedContent); // Establish the default text editor11155.clearSelection();

editor11155.setOptions({ maxLines: Infinity });

function decodeHTML11155(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }

// Function to duplicate code to clipboard function copyCodeToClipboard11155() { const code = editor11155.getValue(); // Retrieve code from the editor navigator.clipboard.writeText(code).then(() => { // alert("Code successfully copied to clipboard!");

jQuery(".maineditor11155 .copymessage").show(); setTimeout(function() { jQuery(".maineditor11155 .copymessage").hide(); }, 2000); }).catch(err => { console.error("Error duplicating code: ", err); }); }

function runCode11155() { var code = editor11155.getSession().getValue();

jQuery("#runBtn11155 i.run-code").show(); jQuery(".output-tab").click();

jQuery.ajax({ url: "https://intellipaat.com/blog/wp-admin/admin-ajax.php", type: "post", data: { language: "python", code: code, cmd_line_args: "", variablenames: "", action: "compilerajax" }, success: function(response) { var myArray = response.split("~"); var data = myArray[1];

jQuery(".output11155").html("

"+data+"");
            jQuery(".maineditor11155 .code-editor-output").show();
            jQuery("#runBtn11155 i.run-code").hide();
        }
    })
}

function closeoutput11155() { var code = editor11155.getSession().getValue(); jQuery(".maineditor11155 .code-editor-output").hide(); }

// Attach event listeners to the buttons document.getElementById("copyBtn11155").addEventListener("click", copyCodeToClipboard11155); document.getElementById("runBtn11155").addEventListener("click", runCode11155); document.getElementById("closeoutputBtn11155").addEventListener("click", closeoutput11155);

Output:

To document a data validation utility

Explanation: The docstring serves to clarify the expected input (a string), output type (bool), and even furnish testable instances. This aids both manual readers and automatically generated documentation tools in quickly grasping the utility.

Use case 2 (Creating a custom class for logging)

When attempting to establish a class designed for reuse (e.g., a logger), incorporating structured docstrings at both the class and method levels can ensure clarity regarding its usage and the function of each method.

Example:

Python

Code Successfully Copied!

var isMobile = window.innerWidth ");

editor30444.setValue(decodedContent); // Establish the default text editor30444.clearSelection();

editor30444.setOptions({ maxLines: Infinity });

function decodeHTML30444(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }

// Function to duplicate code to clipboard function copyCodeToClipboard30444() { const code = editor30444.getValue(); // Retrieve code from the editor navigator.clipboard.writeText(code).then(() => { // alert("Code successfully copied to clipboard!");

jQuery(".maineditor30444 .copymessage").show(); setTimeout(function() { jQuery(".maineditor30444 .copymessage").hide(); }, 2000); }).catch(err => { console.error("Error duplicating code: ", err); }); }

function runCode30444() { var code = editor30444.getSession().getValue();

jQuery("#runBtn30444 i.run-code").show(); jQuery(".output-tab").click();

jQuery.ajax({ url: "https://intellipaat.com/blog/wp-admin/admin-ajax.php", type: "post", data: { language: "python", code: code, cmd_line_args: "", variablenames: "", action: "compilerajax" }, success: ``````javascript function(response) { var myArray = response.split(""~""); var data = myArray[1];

jQuery("".output30444"").html("<pre>" + data + "</pre>"); jQuery("".maineditor30444 .code-editor-output"").show(); jQuery(""#runBtn30444 i.run-code"").hide(); } })

}

function closeoutput30444() { var code = editor30444.getSession().getValue(); jQuery("".maineditor30444 .code-editor-output"").hide(); }

// Attach event handlers to the buttons document.getElementById(""copyBtn30444"").addEventListener(""click"", copyCodeToClipboard30444); document.getElementById(""runBtn30444"").addEventListener(""click"", runCode30444); document.getElementById(""closeoutputBtn30444"").addEventListener(""click"", closeoutput30444);

Result:

Defining a custom class for logging

Clarification:

This use case demonstrates how docstrings can aid in instructing you to create an instance of a class, what arguments to provide, and how to execute each method. Docstrings also outline internal attributes for both the class and its methods, which can be valuable for advanced usage or enhancement.

Role of docstring in this scenario:

The primary function of docstrings in this context is to delineate class properties, constructor arguments, and method functionalities, facilitating ease of adoption for users with minimal effort.

Best Approaches to Implement Python Docstrings

Be concise and lucid: It’s advisable to start with a one-line summary, followed by additional details as needed.

Employ triple quotes for multiline docstrings: Stick with triple quotes for uniformity and clarity, even if the string is short.

Adhere to a style guide: It's preferable to select a format like Google or NumPy style and consistently apply it across your codebase.

Document parameters and return types: Clearly stating expected inputs/outputs enhances the self-documenting nature of your code.

Incorporate examples when beneficial: Remember to include usage examples in the docstring.

Summary

Docstrings form a vital component of Python, enabling you to add readable commentary to your code. They outline what a function, class, or module accomplishes, aiding in making your code more comprehensible. Unlike regular comments, docstrings are retained in memory and integrate with tools such as help() and pydoc. They are particularly useful when multiple individuals are collaborating and modifying the same codebase. Properly structured docstrings enhance your code's quality, help eliminate errors, and simplify comprehension and usability for others, including yourself. Moreover, enhance your Python expertise by enrolling in a Python certification program, and prepare for success in your career with Essential Python interview questions curated by experts.

Docstrings In Python-FAQs

Q1. What if we utilize docstrings for single-line documentation in the Python programming language?

Indeed, we must ensure it is enclosed in triple quotes to guarantee compatibility with tools and standardization.

Q2. Can docstrings affect my performance?

Docstrings are stored once per function/module/class and can only be accessed if specifically requested. Therefore, they do not impact performance.

Q3. Are docstrings mandatory when working in Python?

While the language may not require them, it is still a best practice, especially regarding production code and libraries.

Q4. How do docstrings interact with IDEs and support tools?

Most contemporary IDEs exhibit docstrings as pop-up documentation while coding. Tools such as help() also display them in interactive shells.

Q5. Can docstrings facilitate the documentation of exceptions and examples?

Yes. You can and should incorporate sections for exceptions raised and usage examples using formats like Google or NumPy style.

The article Docstrings In Python first appeared on Intellipaat Blog.

```


Leave a Reply

Your email address will not be published. Required fields are marked *

Share This