num = 100
nums = [11, 22]
def test1(num):
num += 1
def test2():
global num
num += 1
def test3(nums):
nums += [33]
def test4():
global nums
nums += [33]
def test5():
nums.append(33)
if __name__ == '__main__':
print(num) # 原值 100
test1(num)
print(num) # 未改变 100
test2()
print(num) # 改变 101
print(nums) # 原值 [11, 22]
test3(nums)
print(nums) # 改变 [11, 22, 33]
test4()
print(nums) # 改变 [11, 22, 33, 33]
test5()
print(nums) # 改变 [11, 22, 33, 33, 33]
在一个函数中, 对全局变量进行修改的时候,到底是否需要使用global进行说明
要看是否对 全局变量的指向进行了修改,
如果修改了执行,即让全局变量指向一个新的地方,那么必须使用gobal
如果仅仅修改了 指向的空间数据, 此时就不需要使用global