Back to Blog
Developer guide
PYTHONApril 27, 2026

Understanding Python NameError with Real Examples

Python NameError is a common exception that occurs when a variable, function, or module is not defined. As a Python developer, understanding and fixing NameError is crucial to delivering high-quality code and ensuring smooth execution. In this article, we will delve into the causes of NameError, provide real-world examples, and offer practical solutions to help you become more proficient in debugging and resolving this exception.

1. Undefined Variable NameError

This error occurs when you try to access or manipulate a variable that has not been defined.

Why It Happens

Typically, this error occurs when you have a typo in the variable name, or you are trying to access a variable before it has been assigned a value.

How to Fix It

To fix this error, make sure to define the variable before using it. You can do this by assigning a value to the variable or by importing the module if it's a module-level variable. Additionally, double-check your variable names for typos.


2. Missing Module NameError

This error occurs when you try to import a module that does not exist.

Why It Happens

This error can occur if you have a typo in the module name, or the module has not been installed.

How to Fix It

To fix this error, make sure to install the required module using pip. If the module name is incorrect, check the module name in your import statement and correct it. You can also use the correct module name to import the module.


3. Undefined Function NameError

This error occurs when you try to call a function that has not been defined.

Why It Happens

Typically, this error occurs when you have a typo in the function name, or you are trying to call a function before it has been defined.

How to Fix It

To fix this error, make sure to define the function before calling it. You can do this by defining the function with the correct name and parameters. Additionally, double-check your function names for typos.


4. Attribute NameError

This error occurs when you try to access an attribute of an object that does not exist.

Why It Happens

Typically, this error occurs when you have a typo in the attribute name, or you are trying to access an attribute that does not exist for the given object.

How to Fix It

To fix this error, make sure to check the object's attributes and access the correct attribute. You can do this by using the dir() function to list the object's attributes and then accessing the correct attribute.


5. Import NameError

This error occurs when you try to import a module or function that does not exist.

Why It Happens

Typically, this error occurs when you have a typo in the module or function name, or the module or function has not been defined.

How to Fix It

To fix this error, make sure to define the module or function before importing it. You can also check the module or function name in your import statement and correct it. If the module or function has not been installed, install it using pip.


6. Global Variable NameError

This error occurs when you try to access a global variable that has not been defined.

Why It Happens

Typically, this error occurs when you are trying to access a global variable before it has been assigned a value.

How to Fix It

To fix this error, make sure to define the global variable before using it. You can do this by assigning a value to the global variable. Additionally, double-check your global variable names for typos.


7. Non-existent Class NameError

This error occurs when you try to create an instance of a class that does not exist.

Why It Happens

Typically, this error occurs when you have a typo in the class name, or the class has not been defined.

How to Fix It

To fix this error, make sure to define the class before creating an instance of it. You can do this by defining the class with the correct name and attributes. Additionally, double-check your class names for typos.


8. Invalid Attribute NameError

This error occurs when you try to access an attribute of an object that does not exist, or the attribute is not valid.

Why It Happens

Typically, this error occurs when you have a typo in the attribute name, or you are trying to access an attribute that does not exist for the given object.

How to Fix It

To fix this error, make sure to check the object's attributes and access the correct attribute. You can do this by using the dir() function to list the object's attributes and then accessing the correct attribute. Also, ensure that the attribute name is valid.

Conclusion

Python NameError is a common exception that occurs when a variable, function, or module is not defined. By understanding the causes of NameError and following the practical solutions provided in this article, you can become more proficient in debugging and resolving this exception. Remember to double-check your variable and function names for typos, define variables and functions before using them, and ensure that modules and classes exist before trying to access them.

Explore More Debugging Resources

- [Browse all PYTHON errors](/languages/python)

- [Browse errors by type](/error-types)

- [Search all documented errors](/search)

- [Use the Error Explainer](/error-explainer-tool)

Browse allPython errors

Related PYTHON Articles

Have a specific error? Get an instant explanation.

Explain an Error