本文摘自php中文网,作者silencement,侵删。

在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 即python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量。
然而当在一个函数内部为一个变量赋值时,并不是按照上面所说LEGB规则来首先找到变量,之后为该变量赋值。在Python中,在函数中为一个变量赋值时,有下面这样一条规则:“当在函数中给一个变量名赋值是(而不是在一个表达式中对其进行引用),Python总是创建或改变本地作用域的变量名,除非它已经在那个函数中被声明为全局变量. ”
python中golbal全局变量和nonlocal局部变量
global关键字用来在函数或其他局部作用域中使用全局变量。
1 2 3 4 5 6 7 8 9 |
|
输出
1
2
3
nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
输出
3
以上就是python如何在非创建全局变量的地方使用全局变量的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python中django缓存的两种方式(硬盘和redis)
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。