函数的作用域

# 局部变量不能修改全局变量,如需要修改是需要先进行声明
a = 1  # 全局变量


def f():
    global a   # 声明使用全局变量
    print("第1次打印:%s" % a)
    a = 2   # 修改全局变量
    print("第2次打印:%s" % a)

    def f_1():
        global a  # 因为上面已声明全局变量,所以a已变成全局变量,所以嵌套时需要再次声明使用的上面的全局变量
        a = 10  # 修改嵌套的全局变量
        print("第3次打印:%s" % a)

    f_1()
    print("第4次打印:%s" % a)


print("第5次打印:%s" % a)

f()


def b_f():
    b = 20   # 局部变量
    print("第1次打印:%s" % b)

    def b_f_1():
        nonlocal b  # 声明局部变量
        b = 30  # 嵌套局部变量
        print("第2次打印:%s" % b)

    b_f_1()
    print("第3次打印:%s" % b)


b_f()

 

posted @ 2024-09-04 18:07  GDquicksand  阅读(2)  评论(0编辑  收藏  举报