Python是静态作用域语言,但是它自身是一个动态语言。在Python中变量的作用域是由变量在代码中的位置决定的,与C语言有些相似,但不是完全一样。下面的这篇文章主要介绍的就是有关Python函数中的作用域规则是什么?Python函数中的作用域规则分析,希望大家学习了这篇文章之后,能有所收获。
一、闭包
在学习Python函数的作用域之前,我们需要了解一下闭包的概念,它是函数中一个比较重要的语法结构举个嵌套函数的例子:
def foo(): x = 12 def bar(): print x return bar foo()()
运行结果为12.
组通过例子,我们可以知道,组成函数的语句和语句的执行环境打包在一起,得到的对象就称为闭包。在嵌套函数中,闭包将捕捉内部函数执行所需要的整个环境。
二、作用域规则
在Python它只支持3种作用域,分别是局部作用域,全局作用域,内置作用域。
1、局部作用域
它是在函数进行调用的时候创建的,一般包括了函数的参数名称已经函数体赋值语句的变量名称,在函数的返回或者是在没有出现异常的时候,作用域就不会起到如何的作用,会自动删除,在进行递归调用的时候,都会有一个自己的局部命名空间的存在。
2、全局作用域
当我们在对函数模块进行读取的时候,就会创建一个全局作用域,在读入函数所在的模块时创建,通常情况下,模块命名空间也会一直保存到解释器退出。可以通过内置函数globals()查看。
3、内置作用域
这种作用域是在运行Python解释器的时候创建的,它包含了一些内置的函数还有一些内置的异常名称,通常在Python解释器结束退出的时候,它才会结束保存。
有关Python函数中的作用域规则是什么?Python函数中的作用域规则分析的内容就讲解到这里了,希望对大家想学习带来一定的帮助,如果还想学习更多的Python知识,可以继续关注哦。