Python全局變量和局部變量相關知識點
#知識點一:
#在函數外面定義的變量叫全局變量
num = 100
def AAA():
‘‘‘
如果在函數中直接修改全局變量,那麽會產生異常
如果真的需要修改,可以在函數中進行聲明(前面加入global)
‘‘‘
global num
print(num)
num+=2
print(num)
def BBB():
print(num)
AAA() #輸出100和102
#調用函數AAA()後全局變量num的值就真的改變了
BBB() #輸出102
#知識點二:
‘‘‘
如果全局變量是可變類型,比如列表或字典,那麽就可以在函數中直接修改;
而對於不可變類型,比如int,是不能直接在函數中修改的
‘‘‘
nums = [11,22,33]
info = {"name":"xiaowang","age":24}
def test():
print("-"*20)
# nums.append(44) #列表可以在函數中修改
# print(nums)
info[‘name‘] = ‘xiaoli‘
print(info)
def test2():
print("="*20)
# print(nums)
print(info)
test()
test2()
#上述兩次打印結果一樣
#知識點三:
#為了防止和局部變量名字相同,所以在全局變量前加一個g
# g_a = 200
a = 200
def test3():
print("-"*20)
#a+=1 #這種情況下是直接修改a的值,但由於函數外的a是全局變量不能在函數內修改,所以會報錯
a = 100
‘‘‘
註意一:這裏可能是重新定義一個新的變量a,也有可能是修改a的值,但由於全局
變量a不能修改,所以此處是重新定義了一個a;
註意二:如果一個局部變量和全局變量名字相同,那麽用的是局部變量
‘‘‘
print(a)
def test4():
print("="*20)
print(a)
#print(b) # name ‘b‘ is not defined
#變量的使用順序是:局部變量->全局變量,如果兩者都沒有,程序就會報錯
test3() #打印100
test4() #打印200
Python全局變量和局部變量相關知識點