优草派  >   Python

Python函数中的作用域规则是什么?Python函数中的作用域规则分析

翟嘉慧            来源:优草派

Python是静态作用域语言,但是它自身是一个动态语言。在Python中变量的作用域是由变量在代码中的位置决定的,与C语言有些相似,但不是完全一样。下面的这篇文章主要介绍的就是有关Python函数中的作用域规则是什么?Python函数中的作用域规则分析,希望大家学习了这篇文章之后,能有所收获。

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知识,可以继续关注哦。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行