Python中如何正确使用global变量来改变函数外部的变量作用域?
- 内容介绍
- 文章标签
- 相关推荐
本文共计795个文字,预计阅读时间需要4分钟。
在Python中,一个变量的作用域通常由其在代码中被赋值的位置决定。1. 函数定义了局部作用域,而模块定义了全局作用域。2. 如果想在函数内定义全局变量,需要使用`global`修饰符。
Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定的。
1、函数定义了本地作用域,而模块定义的是全局作用域。如果想要在函数内定义全局作用域,需要加上global修饰符。
2、变量名解析:LEGB原则
当在函数中使用未认证的变量名时,Python搜索4个作用域:
①本地作用域(L)(函数内部声明但没有使用global的变量)
②之后是上一层结构中def或者lambda的本地作用域(E)
③之后是全局作用域(G)(函数中使用global声明的变量或在模块层声明的变量)
④最后是内置作用域(B)(即python的内置类和函数等)
如果在第一处能够找到这个变量名,那么python此时会停止查找。如果变量名在整个的搜索过程中都没有找到,Python就会报错。
本文共计795个文字,预计阅读时间需要4分钟。
在Python中,一个变量的作用域通常由其在代码中被赋值的位置决定。1. 函数定义了局部作用域,而模块定义了全局作用域。2. 如果想在函数内定义全局变量,需要使用`global`修饰符。
Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定的。
1、函数定义了本地作用域,而模块定义的是全局作用域。如果想要在函数内定义全局作用域,需要加上global修饰符。
2、变量名解析:LEGB原则
当在函数中使用未认证的变量名时,Python搜索4个作用域:
①本地作用域(L)(函数内部声明但没有使用global的变量)
②之后是上一层结构中def或者lambda的本地作用域(E)
③之后是全局作用域(G)(函数中使用global声明的变量或在模块层声明的变量)
④最后是内置作用域(B)(即python的内置类和函数等)
如果在第一处能够找到这个变量名,那么python此时会停止查找。如果变量名在整个的搜索过程中都没有找到,Python就会报错。

