如何使用Python的global

今天就跟大家聊聊有关如何使用Python的global,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

 

先回答为什么要有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)

近期小例子:写一个装饰器:统计异常发生次数和时间;对象可被调用的实现方法;求任意维度两点间距离; 两种合并字典的方法对比; 计算和聚合同时进行; groupby 分组; plotly画柱状图+折线图;

看完上述内容,你们对如何使用Python的global有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。