Python global 关键字
最后修改于 2025 年 2 月 25 日
Python 中的 global 关键字用于声明一个变量是全局变量。这允许您修改当前作用域之外的变量,通常是在函数内部。本教程涵盖了 global 关键字的用法、其作用域以及实际示例。
global 关键字用于指示一个变量是在全局作用域中定义的。没有 global 关键字,在函数内赋值的变量默认被视为局部变量。使用 global 关键字允许您在函数内部修改全局变量。
修改全局变量
此示例演示了如何使用 global 关键字在函数内部修改全局变量。
x = 10
def modify_global():
global x
x = 20
modify_global()
print(x) # Output: 20
global 关键字用于声明 x 是一个全局变量。modify_global 函数修改 x 的值,并且更改会全局反映出来。
访问全局变量
此示例演示了如何在函数内部访问全局变量而不修改它。
x = 10
def access_global():
print(x) # Accessing the global variable
access_global() # Output: 10
access_global 函数访问全局变量 x 而不修改它。访问全局变量不需要 global 关键字。
局部变量与全局变量
此示例演示了局部变量和全局变量之间的区别。
x = 10
def local_variable():
x = 5 # Local variable
print(f"Local x: {x}")
local_variable()
print(f"Global x: {x}") # Output: Local x: 5, Global x: 10
local_variable 函数创建了一个局部变量 x,它不会影响全局变量 x。局部变量只能在函数内部访问。
在嵌套函数中使用 Global
此示例演示了如何在嵌套函数中使用 global 关键字。
x = 10
def outer_function():
x = 20 # Non-local variable
def inner_function():
global x
x = 30
inner_function()
print(f"Outer x: {x}") # Output: Outer x: 20
outer_function()
print(f"Global x: {x}") # Output: Global x: 30
inner_function 中的 global 关键字修改了全局变量 x,而 outer_function 中的 x 仍然是非局部变量。
避免使用全局变量
此示例演示了如何通过将变量作为函数参数传递来避免使用全局变量。
def modify_variable(value):
value = 20
return value
x = 10
x = modify_variable(x)
print(x) # Output: 20
没有使用 global 关键字,而是将变量 x 作为参数传递给 modify_variable 函数。这种方法避免了修改全局状态,并使代码更具模块化。
模块中的全局变量
此示例演示了全局变量如何在多个模块之间共享。
# module1.py
x = 10
# module2.py
import module1
def modify_global():
global x
x = 20
modify_global()
print(module1.x) # Output: 20
全局变量 x 定义在 module1.py 中,并通过 global 关键字在 module2.py 中修改。更改会在两个模块中反映出来。
使用 Global 关键字的最佳实践
- 避免过度使用:过度使用全局变量会使代码更难理解和维护。
- 使用函数参数:将变量作为函数参数传递,而不是依赖全局变量。
- 封装状态:使用类或模块来封装状态并减少对全局变量的依赖。
- 记录全局变量:清楚地记录全局变量的用途,以提高代码的可读性。
来源
在本文中,我们探讨了 Python global 关键字,并通过实际示例演示了其用法。
作者
列出所有 Python 教程。