1. 程式人生 > >Python全局變量和局部變量相關知識點

Python全局變量和局部變量相關知識點

進行 owa span 防止 wan not 情況下 定義 調用函數

#知識點一:

#在函數外面定義的變量叫全局變量
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全局變量和局部變量相關知識點