While working with functions, following Python function naming conventions is ideal. In this tutorial, I will explain everything about naming conventions for functions in Python with its syntax and examples. I will also show you some good and bad naming conventions for a Python function.
Python Function Naming Conventions
Naming conventions for functions in Python are important because of the following reasons:
- Readability: Consistent naming makes your code easier to read and understand.
- Maintainability: Well-named functions make maintaining the code easier for others (and yourself).
- Collaboration: Following conventions ensure that your code integrates smoothly with others’ work.
Naming for Python Function Names
Here are the naming conventions for Python function names.
In Python, function names should:
- Be written in lowercase.
- Use underscores to separate words (snake_case).
For instance, a function that calculates the area of a circle should be named calculate_area
rather than CalculateArea
or calculateArea
.
Descriptive Naming
Function names should be descriptive enough to convey their purpose. For example, a function that adds two numbers should be named add_numbers
rather than something vague like func1
.
Examples of Good Function Names
Here’s a simple example to explain good naming practices for Python function names:
def calculate_area(radius):
"""Calculate the area of a circle given its radius."""
return 3.14159 * radius * radius
def add_numbers(a, b):
"""Return the sum of two numbers."""
return a + b
Check out How to Call a Function in Python?
Special Cases and Scenarios for Functions in Python
- Private Functions: Functions intended for internal use should start with a single underscore. For example,
_helper_function
. - Magic Methods: Python has special methods (often called “magic methods”) that are surrounded by double underscores. These are used to implement behavior for built-in operations. For example,
__init__
for object initialization. - Asynchronous Functions: If you’re using Python’s
async
andawait
keywords, it’s a good practice to includeasync
in the function name to indicate its asynchronous nature. For example,async def async_fetch_data(url):
.

Python Function Naming Conventions: Good and Bad Naming Practices Examples
Now, let me show you some real examples of good and bad naming conventions for Python functions.
Example-1: Data Processing
Suppose you’re writing a function to clean data. A good name would be clean_data
instead of something generic like process
.
# Bad naming practice
def process(data):
"""Process the input data."""
# Processing logic here
return processed_data
# Good naming practice
def clean_data(data):
"""Clean the input data."""
# Cleaning logic here
return cleaned_data
The name process
is too generic and doesn’t provide any insight into what the function does. clean_data
is much more descriptive and clearly indicates the function’s purpose.
Example-2: Web Development
In a web application, you might have a function to handle user login. A descriptive name like handle_user_login
is much clearer than login
.
# Bad naming practice
def login(request):
"""Authenticate user."""
# Authentication logic here
return response
# Good naming practice
def handle_user_login(request):
"""Authenticate user and start a session."""
# Authentication logic here
return response
The function name login
is ambiguous and could refer to various login-related tasks. handle_user_login
explicitly states that the function handles the user login process, making the code more understandable.
Check out Python Function Examples with Parameters
Example-3: Machine Learning
If you’re building a machine learning model, you might have a function to train the model. A name like train_model
is more descriptive than train
.
# Bad naming practice
def train(data, labels):
"""Train the model."""
# Training logic here
return model
# Good naming practice
def train_model(data, labels):
"""Train the machine learning model."""
# Training logic here
return model
The name train
is too vague and doesn’t specify what is being trained. train_model
provides clear context, indicating that the function is specifically for training a machine learning model.
Conclusion
You should always follow a proper naming convention for Python functions. Using lowercase letters and underscores and choosing descriptive names can make the function more understandable for yourself and others. I hope now you can follow ideal naming conventions for Python functions.
You may also like:
- How to Return Multiple Values from a Function in Python?
- How to Call a Function by String in Python?

I’m Michelle Gallagher, a Senior Python Developer at Lumenalta based in New York, United States. I have over nine years of experience in the field of Python development, machine learning, and artificial intelligence. My expertise lies in Python and its extensive ecosystem of libraries and frameworks. Throughout my career, I’ve had the pleasure of working on a variety of projects that have leveraged my skills in Python and machine learning. Read more…