Python筆記(八)_內部函數與閉包

內部函數閉包

在函數內部定義另外一個函數,也就是函數的嵌套ide

在外部函數的做用域內,外部函數能夠隨意調用內部函數函數

因爲內部函數的整個定義過程都在外部函數中,因此出了外部函數就沒法再被調用了spa

def outside():   print('外部函數被調用')
def inside():     print('內部函數被調用')   inside() >>>outside() 外部函數被調用 內部函數被調用 >>>inside() NameError: name 'inside' is not defined

 

 閉包code

若是在一個內部函數裏引用了外部函數的變量,此時這個內部函數就被稱爲閉包blog

若是不加關鍵字nonlocal來聲明,就會報錯,閉包僅發生在嵌套函數中作用域

def outside():   var=3
  def inside():     print(var)     var=5
    print(var) inside() >>>outside() UnboundLocalError: local variable 'var' referenced before assignment
修改: def outside():   var=3
  def inside():     nonlocal var 使用關鍵字聲明     print(var)     var=5
    print(var)   inside() >>>outside() 3
5
相關文章
相關標籤/搜索