python-全局变量是否使用global总结

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

猜你喜欢

转载自www.cnblogs.com/fuyouqiang/p/11770047.html