python使用全局变量的方法

发布时间:2020-09-03 11:02:38

来源:亿速云

阅读:88

作者:小新

小编给大家分享一下python使用全局变量的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。

在python的函数使用时,经常会碰到参数定义的问题。如果不声明全局变量,会报错count = 1

def cc():

count = count+1

cc()

Traceback (most recent call last):

File "", line 1, in 

cc()

File "", line 2, in cc

count = count+1

UnboundLocalError: local variable 'count' referenced before assignment

意思是说count为局部变量,在使用它之前没有被赋值。在函数内无法直接使用全局变量。num = 1

id(num)

Out[31]: 1886744032

def cc():

num = 2

print(id(num))

print(num)

cc()

1886744064

2

可以看出函数里面的num是局部变量,有什么办法能在函数内使用全局变量呢?根据官方文档,可以用global语句:

1.The global statement is a declaration which holds for the entire current code block. It means that the

2.listed identifiers are to be interpreted as globals. It would be impossible to assign to a global variable without global.

意思是说global语句可以声明一个或多个变量为全局变量。该声明仅在当前代码块中有效。除此之外,没办法访问全局变量。所以在函数中添加global声明:def cc():

global count

count = count+1

print(count)

cc()

2

用global声明多个变量需要用逗号分隔:num = 0

def cc():

global count,num

count = count+1

num = num+2

print(count,num)

cc()

3 2

# 可以函数中的global声明能够修改全局变量

num

Out[24]: 2

#

count

Out[25]: 3

在使用全局变量的场合,也可用类变量代替

class C:

count = 3

def cc():

count = C.count+1

print(count)

cc()

4

如果是想在函数中调用全局变量,这需要global声明。之后调用全局变量,全局变量的值也随之可能发生改变,如果是count = count+1这种再定义的时候,否则全局变量只是被调用。也可以通过class来调用变量的方法达到全局变量的效果

global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了。

看完了这篇文章,相信你对python使用全局变量的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

更多推荐

python定义全局变量后报错_python使用全局变量的方法