Python global 语句

简介: 如果你想给一个在程序顶层的变量赋值(也就是说它不存在于任何作用域中,无论是函数还是类),那么你必须告诉 Python 这一变量并非局部的,而是全局(Global)的。我们需要通过 global 语句来完成这件事。

如果你想给一个在程序顶层的变量赋值(也就是说它不存在于任何作用域中,无论是函数还是类),那么你必须告诉 Python 这一变量并非局部的,而是全局(Global)的。我们需要通过 global 语句来完成这件事。因为在不使用 global 语句的情况下,不可能为一个定义于函数之外的变量赋值。
你可以使用定义于函数之外的变量的值(假设函数中没有具有相同名字的变量)。然而,这种方式不会受到鼓励而且应该避免,因为它对于Python教程的程序读者来说是含糊不清的,无法弄清楚变量的定义究竟在哪。而通过使用 global 语句便可清楚看出这一变量是在最外边的代码块中定义的。

案例(保存为 function_global.py):



def func():
    global x

    print('x is', x)
    x = 2
    print('Changed global x to', x)


func()
print('Value of x is', x)

输出:

x is 50
Changed global x to 2
Value of x is 2

它是如何工作的

global 语句用以声明 x 是一个python全局变量——因此,当我们在函数中为 x 进行赋值时,这一改动将影响到我们在主代码块中使用的 x 的值。

你可以在同一句 global 语句中指定不止一个的全局变量,例如 global x, y, z。

相关文章
|
6月前
|
编译器 Python
python之局部变量和全局变量的定义,两者之间的区别和使用方法,global和nonlocal的定义和使用方法,可变与不可变类型的定义和示例
python之局部变量和全局变量的定义,两者之间的区别和使用方法,global和nonlocal的定义和使用方法,可变与不可变类型的定义和示例
|
10月前
|
Python
Python 关键字global全局变量详解
Python 关键字global全局变量详解
|
C语言 Python
python基础 判断语句
python基础 判断语句
104 0
python基础 判断语句
|
SQL 数据库 Python
Python 数据库Insert语句脚本生成工具(SQL Server)
Python 数据库Insert语句脚本生成工具(SQL Server)
315 0
Python 数据库Insert语句脚本生成工具(SQL Server)
|
SQL 数据挖掘 数据库
PandaSQL:一个让你能够通过SQL语句进行pandas的操作的python包
PandaSQL:一个让你能够通过SQL语句进行pandas的操作的python包
543 0
PandaSQL:一个让你能够通过SQL语句进行pandas的操作的python包
python——语句(条件、循环、pass)
python——语句(条件、循环、pass)
|
Python
Python:lambda 语句
在 Python 中有个保留的字符「lambda」,它的作用是定义一个匿名函数,具体用法如下。
99 0
|
存储 Unix Shell
import 语句是python 入门不得不熟知的第一道坎
import 语句是python 入门不得不熟知的第一道坎
|
Python
Python基础 if 判断语句详解
Python if 判断语句详解
121 1
Python基础 if 判断语句详解
Python 中的关键字,global和nonlocal
Python 中的关键字,global和nonlocal