Menu Close

How to fix Python NameError: name is not defined?

Sometimes, we want to fix Python NameError: name is not defined.

In this article, we’ll look at how to fix Python NameError: name is not defined.

How to fix Python NameError: name is not defined?

To fix Python NameError: name is not defined, we can use a forward reference to annotate the type.

For instance, we write

class Tree:
    def __init__(self, left: 'Tree', right: 'Tree'):
        self.left = left
        self.right = right

to create the __init__ method with the left and right parameter set to the 'Tree' type.

This tells Python that left and right are Tree class instances without the class being defined yet.

Conclusion

To fix Python NameError: name is not defined, we can use a forward reference to annotate the type.

Posted in Python, Python Answers