Python 3.3.2官方API文档:global语句的全局变量声明与使用详解
1. 文件说明

我在python3.3.2的官方API帮助文档中看到如下一段话:
全局语句是保存整个当前代码块的声明。这意味着列出的标识符将被解释为全局标识符。尽管自由变量可以在未声明为全局的情况下引用全局变量,但不可能在没有全局的情况下分配给全局变量。
全局语句中列出的名称不得在该全局语句之前的同一代码块中使用。
全局语句中列出的名称不得定义为形式参数或 for 循环控制目标、类定义、函数定义或 import 语句中。
翻译成中文大概意思是:
全局语句是适用于整个当前代码块的语句。它是全局变量的标识符。如果本地名称空间中未定义名称,则自动使用相应的全局名称。如果没有全局,则无法手动将名称指定为全局。出现在 global 中的名称不能在 global 之前的代码中使用。在 global 中出现的名称不能用作形参,不能用作循环控制对象,不能出现在类定义、函数定义或 import 语句中。
与nonlocal关键字的区别:
global 语句用于将特定变量声明到全局范围并重新绑定它。 nonlocal 语句用于指示特定变量是封闭作用域并重新绑定它。
2. 示例说明
defscope_test():
def do_local():
垃圾邮件=“本地垃圾邮件”
def do_nonlocal():
非本地垃圾邮件
垃圾邮件 =“非本地垃圾邮件”
def do_global():
全球垃圾邮件
垃圾邮件=“全球垃圾邮件”
垃圾邮件=“测试垃圾邮件”
do_local()
print("本地赋值后:", spam)
do_nonlocal()
print("非本地赋值后:", spam)
do_global()
print("全局赋值后:", spam)
范围_测试()
print("在全局范围内:", 垃圾邮件)
注:本示例代码来自python3.3.2官方文档。
运行结果为:
正如您所看到的,全局变量的值仅在与定义方法并行的代码中输出。
def do_global():
全球垃圾邮件
垃圾邮件=“全球垃圾邮件”
假设去掉global关键字,将会生成以下结果:
这意味着跨度未定义。
总结:
全局变量的使用是为了让我们能够在类或者函数中使用函数返回的变量。
并用于执行复杂的计算过程。对于函数的局部变量,它们仅位于函数内部。
可以使用,如果需要跨越不同的函数或类,则需要在基本函数中返回一个值。
只有在next函数中运行它的方法才能得到该值进行计算。如果程序不复杂,一堂课就可以解决。完全的
局部变量将为我们节省大量的时间和内存空间。