Last modified: Feb 23, 2025 By Alexander Williams

How to Fix NameError in Python

Encountering a NameError in Python can be frustrating. This error occurs when Python cannot find a name in your code. Let's explore how to fix it.

What is a NameError?

A NameError happens when you try to use a variable or function that hasn't been defined. Python raises this error to alert you.

For example, if you try to print a variable that doesn't exist, Python will throw a NameError.

Example of NameError


# Example of NameError
print(undefined_variable)
    

# Output
NameError: name 'undefined_variable' is not defined
    

Common Causes of NameError

There are several reasons why you might encounter a NameError. Let's look at the most common ones.

1. Misspelled Variable or Function Name

One of the most common causes is a typo. Ensure that the variable or function name is spelled correctly.


# Misspelled variable name
my_variable = 10
print(my_variabel)  # Typo here
    

# Output
NameError: name 'my_variabel' is not defined
    

2. Variable or Function Not Defined

Another common cause is trying to use a variable or function before defining it. Always define your variables and functions before using them.


# Variable not defined
print(x)
x = 5
    

# Output
NameError: name 'x' is not defined
    

3. Scope Issues

Variables defined inside a function are local to that function. Trying to access them outside will cause a NameError.


# Scope issue
def my_function():
    local_var = 10

print(local_var)  # Trying to access outside the function
    

# Output
NameError: name 'local_var' is not defined
    

How to Fix NameError

Fixing a NameError involves identifying the root cause and correcting it. Here are some steps to help you resolve it.

1. Check for Typos

Double-check your code for any misspelled variable or function names. Correcting typos often resolves the issue.

2. Define Variables and Functions Before Use

Ensure that all variables and functions are defined before you use them. This prevents Python from raising a NameError.

3. Understand Variable Scope

Be aware of where your variables are defined. Use global variables if you need to access them outside a function.


# Correcting scope issue
def my_function():
    global local_var
    local_var = 10

my_function()
print(local_var)  # Now accessible
    

# Output
10
    

Preventing NameError

Preventing NameError involves good coding practices. Here are some tips to avoid this error.

1. Use Descriptive Variable Names

Using clear and descriptive names reduces the chance of typos and makes your code easier to understand.

2. Initialize Variables

Always initialize your variables before using them. This ensures they exist when you need them.

3. Test Your Code Regularly

Regularly testing your code helps catch errors early. This includes checking for NameError.

Conclusion

Fixing a NameError in Python is straightforward once you understand its causes. By checking for typos, defining variables before use, and understanding scope, you can resolve this common error. For more details, check out our guide on Understanding NameError in Python.