python中的global关键字的使用方法

1.使用场景

  • 只有全局变量在函数中需要修改的时候,需要加global关键字进行声明
#使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加关键字global
#定义全局变量
a=5
b=3
def fun():
    a=3
    b=2
    print(a+b)#--->5

fun()
print(a+b)#---->8
#定义全局变量
a=5
b=3
def fun():
    global a
    a=3
    global b
    b=2
    print(a+b)#--->5

fun()
print(a+b)#---->5

2.底层逻辑

  • 每个python函数拥有对应的globals字典,该字典与函数所属模块的dict字典完全相同,一个模块中每个函数的 globals 字典变量都是模块 dict 字典变量的引用。函数的全局变量也会从这个字典中获取。当使用关键字global后,就会去该字典中查找全局变量,并获取到对应的值
#定义全局变量
a=5
b=3
def fun():
    global a
    a=3
    fun.__globals__['b']=2
    print(a+b)#--->5

# fun.__globals__['b']=2
fun()

print(a+b)#---->5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容