Closures
pyenv activate venv3.10.4
Notice below when pdb.set_trace() is called, var will not be available.
import pdb
def create_closure(var):
    def closure():
        pdb.set_trace()
        print(f"test")
    return closure
# Create a closure
my_closure = create_closure("Hello, World!")
# Print the source code
print(my_closure())
Notice below when pdb.set_trace() is called, var will be available.
import pdb
def create_closure(var):
    def closure():
        pdb.set_trace()
        print(f"test {var}")
    return closure
# Create a closure
my_closure = create_closure("Hello, World!")
# Print the source code
print(my_closure())
The reason is that the variable var is not defined in the local scope of the closure. When pdb.set_trace() is called, it will not be able to find the variable var.