global全局变量 unlocal非局部变量 local 局部变量

global全局变量:在函数中定义与函数外相同的变量名报错,因加全局变量global
unlocal非局部变量:非局部变量只能代表是该函数中的非局部变量,嵌套函数的话,其实还是作用在局部变量中。如下
local 局部变量

count = 1

def a():
    count = 'a函数里面'   # 如果不事先声明,那么函数b中的nonlocal就会报错
    def b():
        '''
        nonlocal只能在封装函数中使用,
        在外部函数先进行声明,这里是在函数a中;在内部函数进行nonlocal声明,这里是函数b中
        这样在b()函数中的count与a()中的count是同一个变量。
        '''
        nonlocal count # 非局部变量
        print(count)
        count = 2 # 这里又把 count 的值变为2
    b() # 不再类中调用自身函数前可不加self.
    print(count)

if __name__ == '__main__':
    a()
    print(count)

print("\n")

# global全局变量
count1 = 1

def a():
    # global count1
    count1 = 'a函数里面'
    def b():
        global count1
        print(count1) # 1
        count1 = 2
    b()
    print(count1) # a函数里面

if __name__ == '__main__':
    a()
    print(count1) # 2
posted @ 2021-07-31 19:50  索匣  阅读(109)  评论(0编辑  收藏  举报