'''
在函数中,Python会按照以下顺序,在各个作用域的命名空间中寻找变量:
1.函数局部作用域(Local Function Scope);
2.闭包作用域(Enclosing Scope);
3.全局作用域(Global Scope);
4.内置作用域(Built-in Scope)。
如果有重名的变量,局部优先于闭包,闭包优先于全局,全局优先于内置。
'''
#1.函数局部作用域只能在函数里面用,在函数外面调用,不起作用
def foo(a,b):
c = 1
return a+b+c
c1 = 1
def fool(a,b):
return a+b+1
#对于一个全局变量,如果我们在函数内部对他重新赋值,它会被认为是一个局部变量
c2 = 1#全局变量
def foo2(a,b):
c2 = 2#局部变量
return a+b+c2
print(foo2(1,1))#4
print(c2)#1
# 2.全局作用域:如果想在函数中对全局变量重新赋值,可以使用关键字global
c3 = 1
def foo3(a,b):
global c3
c3 = 2 #全局变量c在函数中,被重