pythonwarningsstatic-analysispyrightunbound

Why there is an unbound variable error warning by pyright in this simple python function


In VSCode, which uses pylance/pyright, gives me the warning/hint for a being possibly unbound. Why is this? How do I fix it?

def f():
    for i in range(4):
        a = 1
        print(a)

    return a

Solution

  • Because range(4) might be something empty (if you overwrite the built-in range), in which case the loop body will never run and a will not get assigned. Which is a problem when it's supposed to get returned.

    Maybe you can tell your IDE to ignore this and not show the warning. Or assign some meaningful default to a before the loop.