python学习之面向对象

python中能改变变量作用域的三个关键字class, def, lambda

a = 5

def read():
    print(a)   # 没问题,可以访问

def change():
    a += 3  # 对不起,未定义并初始化变量就使用了

原因在于def改变了a的作用域,对于def中的a,他的作用域就只是def内。

如果要在def内使用一个外部的变量,需要在def内申明一个外部变量.

a = 5
def change():
    global a
    a += 3

这样就可以了