Introduction
The Python pass
statement serves as a no-operation placeholder. It simply means “do nothing”. However, despite its lazy nature, it is useful as a placeholder for code that you are going to fill in later.
Because code blocks in Python are marked with indentations, Python statements that require code blocks underneath them need something to be indented, and the pass
statement serves that purpose.
Basic pass Statement Syntax
The syntax for the pass
statement is straightforward – it consists of the keyword pass
on its own line. It can be used anywhere the Python interpreter expects a statement.
Here is the basic syntax for pass
:
statement_that_requires_a_block: pass
Using the Python pass Statement
Suppose you are writing a function to greet dogs. You’ve decided you’re going to call the function greet_a_dog
and it’s going to have a single parameter, dog_name
. The function is ultimately going to print an appropriate greeting, but you are not sure how to implement it yet. In the meantime, you are going to work on some other code that uses that function, and in order to avoid errors, you’ll define the function with a body that consists of the pass
statement only.
Example:
def greet_a_dog(dog_name): pass
The example above demonstrates using pass
in place of the body of a function. The greet_a_dog
function in the example does nothing and has no output, but it can be called from other code with no error, e.g. greet_a_dog('Snoopy')
.
After writing some other code, you thought of how you’d like the function to greet your favorite dog, Snoopy. But you still don’t know how it’s going to handle greeting other dogs. Consequently, you’ll write the function out, but put a pass
placeholder for the code responsible for greeting other dogs.
Example:
def greet_a_dog(dog_name): if dog_name == "Snoopy": print("Hello, Snoopy, my favorite dog!!! What a good dog.") else: pass greet_a_dog("Snoopy") greet_a_dog("Astro")
Output:
Hello, Snoopy, my favorite dog!!! What a good dog.
The example above shows how to use pass
in the else
clause of an if
statement. This new version of greet_a_dog()
prints a greeting on line 3 if the dog is Snoopy but uses pass
on line 5 to do nothing otherwise.
In addition to functions and else
clauses, pass
can also be used as a code-block placeholder with other constructs that require it.
With if
statements –
Example:
if dog == 'Astro': pass
With class definitions –
Example:
class Dog: pass
With for
loops –
Example:
for i in range(10): pass
With while
loops –
The pass
statement can technically be applied to while
loops, however, it’s of limited use because a while
loop needs at least some code that will change its condition and terminate the loop, rendering the use of pass
unnecessary.
Example:
command = "" while command != "exit": command = input("Please enter your command: ")
Output:
Please enter your command: > sit Please enter your command: > bark Please enter your command: > shake Please enter your command: > roll over Please enter your command: > exit
The while
loop in the example above doesn’t do much. However, it does change the loop condition (with user input in this case) to terminate the loop when the command is ‘exit’. Therefore, a pass
statement is not needed because the loop does have a code block.
A while loop with just a pass
for its body must have a false condition going in; otherwise, an infinite loop will result.
Example:
command = "exit" while command != "exit": pass
In the example above, the pass
statement is the only thing in the while
loop, but the loop condition command != "exit"
is false since command
is assigned the value “exit” on line 1. Consequently, the loop does not iterate and there is no infinite loop.
Summary & Reference for the Python pass Statement
The Python pass
statement serves as a no-operation placeholder. It is useful for code you are going to fill in later and requires an indented code block.
The syntax for the pass
statement consists of the keyword pass
on its own line.
def greet_a_dog(dog_name): pass