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