'''
作用域:变量可以使用的范围,程序的变量并不是在哪儿个位置都可以访问的,访问的权限决定于
这个变量实在哪里赋值
划分:
1、局部作用域L
2、闭包函数外到函数中E
3、全局作用域G
4、内建作用域B
变量查找规则:
L->E->G->B
'''
num=10
print("1--------",id(num))
def func():
#global 将定义的变量申明成全局变量
global num
num=20
print("2------",id(num))
print("1------num = %d"%num)
func()
print("2-----num = %d"%num)
def fun2():
a=10
def fun3():
a=20 #这个时候a是新的一个值,如果需要修改,需要申明nonlocal a
nonlocal a #nonlocal 这个只能查找上一层作用域
print("1------a = %d"%a)
fun3()
print("2------a = %d"%a)
fun2()