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

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
上一篇:shell脚本案例-主机状态监控脚本


下一篇:Java数组:稀疏数组