局部变量

如果名称绑定在函数内部,则默认情况下只能在函数内访问:

def foo():
    a = 5
    print(a) # ok

print(a) #  NameError: name 'a' is not defined

控制流构造对范围没有影响(except 除外),但是访问尚未分配的变量是一个错误:

def foo():
    if True: 
        a = 5
    print(a) # ok

b = 3
def bar():
    if False:
        b = 5
    print(b) # UnboundLocalError: local variable 'b' referenced before assignment

常见的绑定操作是赋值,for 循环和增强赋值,例如 a += 5