美文网首页
Python的 global

Python的 global

作者: 隔壁小红馆 | 来源:发表于2019-12-22 14:52 被阅读0次

    先回答为什么要有global.
    一个变量被多个函数引用,想让全局变量被所有函数共享和修改。有的伙伴可能会想,这还不简单:

    i = 5
    def f():
        print(i)
    
    def g():
        print(i)
        pass
    f()
    g()
    

    f和g两个函数都能共享变量i,程序也没有报错。所以他们依然不明白为什么要用global.
    但是,如果想要对i递增,这样:

    def h():
        i += 1
    h()
    

    此时执行程序,bang, 出错了!抛出异常:UnboundLocalError.

    原来编译器在解释i+=1时会把i解析为函数h()内的局部变量,很显然在此函数内,编译器找不到对变量i的定义,所以会报错。
    global就是为解决此问题而被提出的。
    在函数h内,显示地告诉编译器i为全局变量,然后编译器会在函数外面寻找i的定义,执行完i+=1后,i还为全局变量,值加1:

    i = 0
    def h():
        global i
        i += 1
    h()
    print(i)
    

    看完记得点赞哦,笔芯

    相关文章

      网友评论

          本文标题:Python的 global

          本文链接:https://www.haomeiwen.com/subject/eaeonctx.html