全局变量在函数内部的修改
程序员文章站
2024-01-21 21:22:28
...
全局变量在函数内部的修改
接下来,先看两个例子:
例子一:
g_num = 0
def test1():
global g_num
g_num += 10
print("test1后 g_num为:%d" % g_num)
def test2():
g_num = 0
g_num += 20
print("在test2里 g_num为:%d" % g_num)
def main():
print("未执行程序之前 g_num为:%d" % g_num)
test1()
test2()
print("未执行程序之后 g_num为:%d" % g_num)
if __name__ == '__main__':
main()
以上程序,在test1中声名全局变量,然后修改全局变量后,最终全局变量的修改生效
而在test2中,并没有修改全局变量,所以此时g_num为局部变量,仅仅在test2中生效。
例子二:
g_list=[1,2]
def test1():
g_list.append(10)
print("经过test1后 g_list为:%s"%g_list)
def test2():
g_list.insert(2,15)
print("经过test2后 g_list为:%s"%g_list)
def main():
test1()
test2()
print(g_list)
if __name__ == '__main__':
main()
有没有发现,用了列表就不需要用global声名全局变量,而且可以直接修改全局变量
因此 全局变量在函数内部修改,是否需要global声名,要看是否对全局变量的指向做出了修改,如果修改了全局变量的指向,就必须使用global,如果涉及不到修改变量的指向,则不需要使用global声名
上一篇: Linux/Unix 时间与日期函数