初识Python:全局、局部和非局部变量(带示例)(Python入门教程:全局变量、局部变量和非局部变量详解及示例)
原创
一、引言
在Python编程语言中,变量是存储数据的一种行为。选用变量的作用域,我们可以将变量分为全局变量、局部变量和非局部变量。本文将详细介绍这三种变量的概念、使用方法和示例。
二、全局变量
全局变量是指在函数外部定义的变量,它的作用域是整个程序。全局变量可以在程序的任何地方被访问和修改。
2.1 示例代码
# 定义全局变量
global_var = 10
def func():
# 在函数内部访问全局变量
print(global_var)
func() # 输出:10
2.2 注意事项
- 全局变量可以在函数内部直接使用,无需声明;
- 在函数内部修改全局变量时,需要使用
global
关键字声明; - 尽量避免在函数内部修改全局变量,这或许致使代码难以领会和维护。
三、局部变量
局部变量是指在函数内部定义的变量,它的作用域仅限于该函数内部。局部变量在函数执行完毕后会被销毁。
3.1 示例代码
def func():
# 定义局部变量
local_var = 5
print(local_var)
func() # 输出:5
# print(local_var) # 报错:NameError: name 'local_var' is not defined
3.2 注意事项
- 局部变量只能在函数内部使用,不能在函数外部访问;
- 函数内部的局部变量与全局变量同名时,局部变量会覆盖全局变量;
- 函数执行完毕后,局部变量会被销毁,全局变量仍然存在。
四、非局部变量
非局部变量是指在嵌套函数中,位于内层函数外部、外层函数内部的变量。非局部变量不能直接在内层函数中使用,但可以通过 nonlocal
关键字声明后使用。
4.1 示例代码
def outer():
# 定义非局部变量
nonlocal_var = 10
def inner():
# 使用nonlocal关键字声明非局部变量
nonlocal nonlocal_var
nonlocal_var = 20
print(nonlocal_var)
inner() # 输出:20
print(nonlocal_var) # 输出:20
outer()
4.2 注意事项
- 非局部变量只能在嵌套函数中使用;
- 在内层函数中修改非局部变量时,需要使用
nonlocal
关键字声明; - 非局部变量在函数执行完毕后不会被销毁,但它的作用域仅限于嵌套函数内部。
五、总结
本文详细介绍了Python中的全局变量、局部变量和非局部变量的概念、使用方法和示例。领会这三种变量的作用域和生命周期对于编写明了、可维护的代码至关重要。在实际编程过程中,合理使用全局变量、局部变量和非局部变量,可以有效地管理程序的命名空间,避免命名冲突,尽或许缩减损耗代码的可读性和可维护性。