How to Fix Local Variable Referenced Before Assignment Error in Python

Updated onbyAlan Morel
How to Fix Local Variable Referenced Before Assignment Error in Python

In Python, when you try to reference a variable that hasn't yet been given a value (assigned), it will throw an error.

That error will look like this:

BASH
local variable referenced before assignment

In this post, we'll see examples of what causes this and how to fix it.

Fixing local variable referenced before assignment error

Let's begin by looking at an example of this error:

PYTHON
value = 1 def increment(): value = value + 1 print(value) increment()

If you run this code, you'll get

BASH
UnboundLocalError: local variable 'value' referenced before assignment

The issue is that in this line:

PYTHON
value = value + 1

We are defining a local variable called value and then trying to use it before it has been assigned a value, instead of using the variable that we defined in the first line.

If we want to refer the variable that was defined in the first line, we can make use of the global keyword.

The global keyword is used to refer to a variable that is defined outside of a function.

Let's look at how using global can fix our issue here:

PYTHON
value = 1 def increment(): global value value = value + 1 print(value) increment()

Global variables have global scope, so you can referenced them anywhere in your code, thus avoiding the error.

If you run this code, you'll get this output:

BASH
2

Conclusion

In this post, we learned at how to avoid the local variable referenced before assignment error in Python.

The error stems from trying to refer to a variable without an assigned value, so either make use of a global variable using the global keyword, or assign the variable a value before using it.

Thanks for reading!

To learn more about web development, founding a start-up, and bootstrapping a SaaS, follow me on X!
Copyright © 2017 - 2024 Sabe.io. All rights reserved. Made with ❤ in NY.