作用域
🎯 概述
作用域是Python编程中的核心概念,它决定了变量在程序中的可见性和访问性。理解作用域机制对于编写高质量的Python代码至关重要。
📖 1. 作用域 (Scope)
什么是作用域?
作用域是指变量在代码中可以被访问的区域范围。变量只能在其定义的作用域内被访问和修改。
Python中的四种作用域 🔍
Python遵循LEGB规则来查找变量:
- L (Local) - 局部作用域
- E (Enclosing) - 嵌套作用域
- G (Global) - 全局作用域
- B (Built-in) - 内置作用域
python
没有其他语言的块级作用域,比如for
循环内不算作用域
注意:变量查找顺序是从内到外,即 Local → Enclosing → Global → Built-in
🔗 2. 作用域链 (Scope Chain)
什么是作用域链?
作用域链是指解释器在查找变量时所遵循的查找路径。当访问一个变量时,Python会按照LEGB的顺序逐层向外查找。
作用域链的工作原理
实际应用示例 💡
重要:每个函数调用都会创建新的局部作用域,即使是同一个函数的多次调用也是如此。
🌍 3. global 关键字
避免过度使用global:频繁使用global会使代码难以维护和测试,应该尽量通过函数参数和返回值来传递数据。
global的作用
global
关键字用于在函数内部声明全局变量,使得函数可以修改全局作用域中的变量。