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
相关文章
相关标签/搜索