Skip to content

Variable Naming Conventions in Python

Updated: at 04:56 AM

Variable names are an important part of writing readable and maintainable Python code. Choosing clear, descriptive names makes code easier to understand for both programmers and readers. Python has some standard conventions and best practices for naming variables that developers should follow to ensure consistency across Python codebases. This article provides a comprehensive overview of Python’s main variable naming styles and conventions, with examples and recommendations for declaring variable names that conform to Python’s PEP 8 style guide.

Table of Contents

Open Table of Contents


Variable names in Python, as in any programming language, represent the data stored in memory during program execution. They enable developers to assign data to a word or name that is meaningful and representative of the underlying value or object.

Using proper naming conventions is crucial for writing Python code that is clear, concise, and easy to maintain. Inconsistent or cryptic names can obscure the meaning and purpose of variables, making code difficult to understand.

Python’s official style guide PEP 8 recommends developers follow certain conventions and best practices for naming variables. The main conventions include:

This article will provide an in-depth look at each of these major variable naming styles, along with guidance on when and where to use each convention appropriately. Best practices for choosing descriptive, unambiguous names are also covered.

Understanding Python’s naming conventions allows developers to write high-quality code that aligns with Python’s design philosophy of code readability. Adhering to these standard styles also makes Python code more consistent, portable, and easy to collaborate on across teams and projects.

Snake Case

Snake case is the most commonly used naming convention for variable names in Python. It involves writing names in all lowercase with underscores _ separating words. For example:

first_name = "John"
last_name = "Doe"
age = 30
is_admin = False

PEP 8 recommends using snake case for all variable, function, and method names. This convention helps avoid ambiguity by using underscores rather than camel case or spaces.

Some key guidelines for writing snake case names:

Snake case improves code readability by allowing names to be written as full sentences or phrases. For example:

student_grade_average = 92
maximum_number_of_iterations = 100

The use of underscores as word separators creates clear visual separation that is easy to quickly parse.

Snake case is ideal for most variable declarations in Python code, helping distinguish names from built-in keywords while being robust against typos.

Upper Camel Case

Upper camel case is the convention used for naming Python classes. Camel case combines words without punctuation or spaces, capitalizing each word after the first which begins lowercase. For example:

class StudentRecord:

class NetworkSocket:

Class names should use upper camel case by PEP 8 standards, with the first letter lowercase and all other words capitalized. This clearly distinguishes class names from variables while supporting readability.

Some guidelines for upper camel case class names:

Class names should be descriptive nouns representing the objects being modeled in code. Here are some examples:

class UserProfile:

class HttpRequestHandler:

The capitalized nature of upper camel case immediately signals to programmers that a class constructor is being declared and instantiated. This convention is standard across most Python codebases.


Simple lowercase names without underscores are used in Python for certain exception types and builtin constants.

For example, the None keyword and boolean values True and False:

is_authenticated = False
user_score = None

Lowercase names are also convention for predefined exception names like AttributeError, KeyError, RuntimeError, and many built-in Python exceptions.

PEP 8 advises using all lowercase names only for instances where the name carries strong meaning and wide usage across Python ecosystems. Avoid using bare lowercase for general variable names.

Capitalized Words

All capital letters are used to declare global constants in Python according to PEP 8, which are variables that should never change state once initialized.

For example:



Constants are named using all caps with underscores to visually distinguish them from other variables. This warns programmers not to modify these values which are intended to represent fixed configuration or limits.

Some key points for naming constants:

Well-named global constants can help improve clarity of code intention and prevent unintended changes.

Descriptive Names

Beyond just following naming conventions, variables should be given descriptive, unambiguous names that represent their purpose or contents.

Example of poor variable names:

a = 1
b = "hello"
c = SomeClass()

These single-letter or vague names do not indicate what data is being represented. Instead, use more precise names like:

student_count = 1
greeting_message = "hello"
user_profile = SomeClass()

Keep these tips in mind for assigning descriptive Python variable names:

The goal is to find names that are unambiguous and readable but not overly long or verbose. With descriptive names, the purpose and use of variables will be clear from context.

Avoiding Name Collisions

When declaring variables in Python, it is important to avoid using names that collide with or overwrite names used elsewhere in code. This can cause unexpected errors and make code difficult to maintain.

There are a few major sources of name collisions to watch out for:

1. Built-in keywords and functions - Avoid naming variables after Python keywords like print, lambda, return etc which are part of the language syntax. Also avoid Python’s many built-in functions like max(), abs(), any() which have specific behavior.

2. Standard library names - The Python standard library provides many modules and packages like math, sys, collections etc. Ensure your own names don’t overwrite these widely used libraries.

3. Third party library names - When using external libraries, check their documentation to avoid naming clashes with their classes, methods, or attributes.

4. Names within local scope - Look out for local variables that may be reused in nested functions, loops, or classes to avoid collisions.

In summary, carefully consider scopes and collisions when naming variables in Python. Use prefixing or renaming to avoid overwriting other names if needed. This will prevent cryptic bugs and access issues.


Python has several major conventions and best practices for naming variables including snake case, upper camel case, lowercase, and capitalized words. Following the guidelines outlined in this article will help write Python code that is:

Variable names directly impact how clear and maintainable Python programs will be. Adopting these naming conventions is key for any new or experienced Python developer looking to build high quality, idiomatic applications in Python.