python变量作用域详解

python变量的一生包括变量的申明,引用和修改及消亡,此文主要关注变量的引用和修改。

变量从作用域来分主要包括全局变量,嵌套(外部)变量,局部变量。

一,全局变量,一般定义在模块顶部,对整个模块都生效,可以在函数内部或者外部直接使用,举例如下


二,嵌套(外部)变量,一般出现在函数中嵌套函数时使用,即内部函数引用外部函数的变量,举例如下


三,局部变量,一般定义在函数内部,随着函数的消亡而消亡,举例如下


四,修改全局变量,全局变量一经定义后一般不会修改,也不允许在函数内部修改全局变量,若一定要修改,则可以使用关键字global,举例如下



五,修改嵌套变量,在函数中嵌套函数时,嵌套在里面的函数创建的作用域内一般也是不允许改变外层函数变量的值的,除非是nonlocal关键字声明。若该外部变量为可变类型,则可以不使用关键字nonlocal即可修改该变量的值,举例如下


六,变量引用规则,一般是遵循从下往上的原则,先查找局部变量,在查找嵌套变量,最后查找全局变量,若找到,则引用,若没有找到,则抛出异常,NameError

相关文章

看一看,Python这四种作用域你都知道吗?

点赞、收藏、加关注,下次找我不迷路一、啥是作用域?先打个比方比如说,你在自己的卧室(相当于一个小空间)里放了一本书,这本书在卧室里随便你怎么看,这就是这本书在卧室这个 "作用域" 内...

一文读懂Python中的全局变量局部变量和作用域

通常小白在写代码时,只知道引用变量来应对一些基础的编码问题,当面试官问及局部变量和全局变量的具体细节时,就会一脸懵逼,傻傻分不清楚!其实想要彻底了解局部变量和全局变量的关系,本质是大家需要明白何为作用...

新手学Python避坑,学习效率狂飙! 五、Python循环中的变量作用域

在 Python 里,变量的作用域指的是变量可被访问的代码范围。循环里的变量作用域在 Python 中是个常见且关键的概念。一、变量作用域Python 里的变量作用域主要有局部作用域和全局作用域。1、...

新手易犯错的地方Python作用域

好多新手一开始比较容易犯错的地方理解作用域对于编写高效的python代码十分重要现在就讲下四种作用域,按照从内到外的顺序:局部作用域(Local) - 在函数内部定义的变量嵌套作用域(Enclosin...

Python闭包实现:nonlocal关键字与变量作用域

在Python编程中,闭包是一个强大而优雅的特性,它允许函数捕获并记住其定义环境中的变量值。通过闭包,可以创建更加灵活和模块化的代码结构。而nonlocal关键字的引入,则进一步增强了Python闭包...