国际访客建议访问 Primers 编程伙伴 国际服 以获得更好的体验。 快速访问 Python 函数 作用域

# Python 的作用域

Python 中存在作用域的概念,也就是变量的有效范围,Python 中所有 代码块 都是一个单独的作用域。

代码块内的创建的变量只在其范围内有效,称作 局部(local)变量

最外层代码块的作用域称为 全局(global)作用域,全局作用域的变量称作 全局变量

与大多数编程语言不同,Python 没有块级作用域,即条件、循环、模式匹配等代码块都是所在函数的作用域。

例如:

形式参数也是函数内部的局部变量

内层作用域作为外层作用域的一部分,可以访问外层作用域的变量:

但如果在内层赋值一个外层作用域同名的变量,将创建一个内层作用域的局部变量,而非修改外层变量的值,这样的局部变量被称作 影子(shadow) 变量:

影子变量会降低代码的可读性,并可能造成代码行为不符合预期,应当尽量避免。

如果要在内层作用域修改外层变量的值,需要使用 nonlocalglobal 关键字标记变量:

  • nolocal 向外查找一层作用域,但外层不能是全局作用域

  • gobal 查找全局作用域

本文 更新于: 2025-05-31 19:53:11 创建于: 2025-05-31 19:53:11