美文网首页
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与nonlocal的区别

    python_global_nonlocal

  • python global

    这个问题很囧,在外面定义了一个变量 xxx ,然后在python的一个函数里面引用这个变量,并改变它的值,结果报错...

  • Python的 global

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

  • keyword --- global & nonloc

    1. global #消除python对global variable的屏蔽(shadowing)作用 1.1 如...

  • Python——global语句

    global基础介绍 Python中 global用于声明命名空间,它告诉Python函数打算生成一个或多个全局变...

  • 12_Global_and_Local_Variables

    sources :Python 3 Programming Tutorial: Global and Local ...

  • python系列之(四)并发-异步

    虽然python拥有真正的线程,由于GIL(global interpreter lock)的存在,python解...

  • Python global变量

      偶然遇到一次“global name 'aglobalname' is not defined”问题,又重新理...

  • python global 用法

    1、global---将变量定义为全局变量。可以通过定义为全局变量,实现在函数内部改变变量值。 2、一个globa...

  • [Python] global,nonlocal

    (1)global:修改全局变量 (2)nonlocal:修改外层词法变量 (3)default:创建局部变量

网友评论

      本文标题:Python的 global

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