函数:内嵌函数和闭包
global 关键字 上面提到在函数内部去修改全局变量的时候,会创建一个和全局变量名字一样的局部变量,真正的全局变量的值没有发生变化,这其实是python使用屏蔽的方式保护了全局变量。 但如果真的需要函数试图去修改全局变量,可以使用global关键字达到目的,例如: >> > count = 5 >> > def fun ( ) : global count count = 10 print ( count ) >> > fun ( ) 10 >> > count 10 内嵌函数 允许在函数内创建另外一个函数,成为内嵌函数或内部函数,内部函数整个作用域在外部函数之内。 注意:内部函数只能在外部函数体中被随意调用,出了这个函数体,就没有任何函数可以对内部函数进行调用,不然就会报错。 闭包 closure 闭包是函数式编程的一个重要的语法结构。 python的闭包从表现形式上定义为:如果在一个内部函数里,在对外部作用域的变量进行引用,那么内部函数就被认为是闭包。 >> > def funX ( x ) : def funY ( y ) : return x * y return funY >> > i = funX ( 8 ) >> > i ( 5 ) 40 >> > 在一个内部函数里对外部作用域的变量进行引用,比如上述X就是被引用的变量,x在外部作用域funX函数里面