1、global在函数内创建全局变量,相当于在文件内创建全局变量。
2、修改函数内的全局变量。由于函数中直接对全局变量进行分配/修改,因此被视为创建新的局部变量。
当然,可以通过索引定位全局变量中的元素进行修改。
实例
global 变量1, 变量2, …
变量1 = 赋值数据
# 错误示范
期望修改的全局变量1 = 数据 # python 认为创建了一个局部变量:变量1。
# 正确示范
global 期望修改的全局变量1 # 先告诉 python 这个变量在这个局部也是当做全局变量看。
期望修改的全局变量1 = 数据
内容扩展:
Python的全局变量:int string, list, dic(map) 如果存在global就能够修改它的值。而不管这个global是否是存在于if中,也不管这个if是否能够执行到。
但是,如果没有
1
2
|
if bGlobal: global g_strVal; |
int string 将会报错。而list dic(map)是ok的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#!/usr/bin/dev python import sys import os g_nVal = 0 ; g_strVal = "aaaa" ; g_map = { "aaa" : "111" , "bbb" : "222" , "ccc" : "333" , "ddd" : "444" } g_ls = [ 'a' , 'b' , 'c' ] def FixInt(bGlobal = False ): if bGlobal: global g_nVal; g_nVal = g_nVal + 1 ; def FixString(bGlobal = False ): if bGlobal: global g_strVal; #fix string value g_strVal = g_strVal + 'b' ; def FixMap(bGlobal = False ): if bGlobal: global g_map; #fix map value g_map[ 'aaa' ] = 'aaa__' + g_strVal; g_map[ 'bbb' ] = 'bbb__' + g_strVal; g_map[ 'ccc' ] = 'ccc__' + g_strVal; g_map[ 'ddd' ] = 'ddd__' + g_strVal; def FixList(bGlobal = False ): if bGlobal: global g_ls; g_ls.append( '1' ); def PrintVal(strInfo): if strInfo: print ( "==== %s =====" % strInfo); print ( "int value:%d" % g_nVal); print ( "string value:%s" % g_strVal); print ( "map value:%s" % g_map); print ( "list value:%s" % g_ls); print ( "\n\n" ); if "__main__" = = __name__: PrintVal( "The orgin vlaue" ); FixInt(); FixString(); FixMap(); FixList(); PrintVal( "print all bGlobal = False vlaue" ); FixInt( True ); FixString( True ); FixMap( True ); FixList( True ); PrintVal( "print all bGlobal = True vlaue" ); |
结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
= = = = The orgin vlaue = = = = = int value: 0 string value:aaaa map value:{ 'aaa' : '111' , 'bbb' : '222' , 'ccc' : '333' , 'ddd' : '444' } list value:[ 'a' , 'b' , 'c' ] g_nVal src: 0 g_nVal dst: 1 = = = = print all bGlobal = False value = = = = = int value: 1 string value:aaaab map value:{ 'aaa' : 'aaa__aaaab' , 'bbb' : 'bbb__aaaab' , 'ccc' : 'ccc__aaaab' , 'ddd' : 'ddd__aaaab' } list value:[ 'a' , 'b' , 'c' , '1' ] g_nVal src: 1 g_nVal dst: 2 = = = = print all bGlobal = True value = = = = = int value: 2 string value:aaaabb map value:{ 'aaa' : 'aaa__aaaabb' , 'bbb' : 'bbb__aaaabb' , 'ccc' : 'ccc__aaaabb' , 'ddd' : 'ddd__aaaabb' } list value:[ 'a' , 'b' , 'c' , '1' , '1' ] |
到此这篇关于python global的创建和修改实例讲解的文章就介绍到这了,更多相关python global的创建和修改内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/jichu/33680.html