1. 程式人生 > 程式設計 >python global和nonlocal用法解析

python global和nonlocal用法解析

這篇文章主要介紹了python global和nonlocal用法解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

◆global和nonlocal是Python的兩個重要變數作用域關鍵字

1.global用在全域性變數,應用場景:
變數定義在函式外部的時候,如果函式裡面想改變這個全域性變數的值,需要在當前的引用函式裡面重新定義一個變數 並用關鍵字global修飾。

例如:

a=1
def b():
  a+=1
  print(a)
b()

用ide寫完這段程式碼的時候,還沒執行就會報紅線提示錯誤,執行之後產生錯誤,錯誤內容為:UnboundLocalError: local variable 'a' referenced before assignment。

解決方案:函式中重新宣告變數並加修飾符global修改:

#!/usr/bin/env python 
# encoding: utf-8 
a=1
def b():
  global a
  a+=1
  print(a)
b()

2.nonlocal非全域性變數,應用場景:

在函式的函式裡面使用函式的變數。表達的可能有點混亂,看程式碼就知道了

#!/usr/bin/env python 
# encoding: utf-8
def b():
  num2=1
  def c():
   nonlocal num2#為了修改非全域性變數
   num2+=2
   print(num2)
  return c
b()()

3.綜合應用

#!/usr/bin/env python 
# encoding: utf-8 
gcount = 0
 
def global_test():
  global gcount
  s=0
  def g():
    nonlocal s
    s+=2
    print(s)
  return g
  gcount+=1
  print (gcount)
global_test()()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。