python|python global的创建和修改实例讲解
1、global在函数内创建全局变量,相当于在文件内创建全局变量。
2、修改函数内的全局变量。由于函数中直接对全局变量进行分配/修改,因此被视为创建新的局部变量。
当然,可以通过索引定位全局变量中的元素进行修改。
实例
global 变量1, 变量2, …内容扩展:
变量1 = 赋值数据
# 错误示范
期望修改的全局变量1 = 数据 # python 认为创建了一个局部变量:变量1。
# 正确示范
global 期望修改的全局变量1 # 先告诉 python 这个变量在这个局部也是当做全局变量看。
期望修改的全局变量1 = 数据
Python的全局变量:int string, list, dic(map) 如果存在global就能够修改它的值。而不管这个global是否是存在于if中,也不管这个if是否能够执行到。
但是,如果没有
if bGlobal: global g_strVal;
int string 将会报错。而list dic(map)是ok的。
#!/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 valueg_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");
结果:
==== The orgin vlaue =====int value:0string value:aaaamap value:{'aaa': '111', 'bbb': '222', 'ccc': '333', 'ddd': '444'}list value:['a', 'b', 'c']g_nVal src:0g_nVal dst:1==== print all bGlobal = False value =https://www.it610.com/article/====int value:1string value:aaaabmap value:{'aaa': 'aaa__aaaab', 'bbb': 'bbb__aaaab', 'ccc': 'ccc__aaaab', 'ddd': 'ddd__aaaab'}list value:['a', 'b', 'c', '1']g_nVal src:1g_nVal dst:2==== print all bGlobal = True value =https://www.it610.com/article/====int value:2string value:aaaabbmap value:{'aaa': 'aaa__aaaabb', 'bbb': 'bbb__aaaabb', 'ccc': 'ccc__aaaabb', 'ddd': 'ddd__aaaabb'}list value:['a', 'b', 'c', '1', '1']
【python|python global的创建和修改实例讲解】到此这篇关于python global的创建和修改实例讲解的文章就介绍到这了,更多相关python global的创建和修改内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量