day 10 局部变量与全局变量

Posted by tzwlwy's Blog on December 16, 2020

看懂下面原理就懂了   
```python  
'''
局部变量与全局变量
'''

a=1
def inner():
    # print(a)  #报错,因为函数内部使用了a这个变量,所以默认a为局部变量,那就不取全局变量了,那么就会找不到,那么就报错了
    a=4
    #global  a  报错,因为已经有局部变量a了,再次使用global,那么函数无法判断使用全部还是局部
    print(a)
    a+=1
    print(a)
    def inner3():
        nonlocal a   #影响最近的函数的局部变量
        a+=1
        print("nonlocal")
        print(a)

    def inner2():
        global a
        a+=1
        print(a)

    inner2()
    inner3()
    print("全局变量a"+str(a))

inner()
print(a)

```
闭包的使用
```python  
def bibao():
    a='1'
    def innner():
        print("闭包的作用是是的部分变量的使用周期变长,如上面的a")
    return innner

s=bibao()
s()
```