Python自学:理解LEGB作用域规则与全局、局部、嵌套及内建变量
80 浏览量
更新于2024-09-01
收藏 684KB PDF 举报
Python作用域是编程中至关重要的概念,它决定了变量的可见性和生命周期。作为自学者,理解作用域可以帮助避免常见的命名冲突和错误。本文将主要讨论Python中的四个主要作用域:全局范围、局部范围、嵌套范围以及内置函数的作用。
1. 全局范围(Global):
当你在xxx.py这样的模块文件中定义变量时,其作用域扩展到整个模块。例如,在`demo.py`中,变量`bd`被声明为全局变量,无论在函数内部还是外部,都能访问到它。然而,为了明确区分,使用`global`关键字可以在函数内部引用全局变量:
```python
bd = "百度"
def function_1():
global bd
print(bd)
function_1() # 在函数内部可以正常访问bd
```
2. 局部范围(Local):
每个函数内部定义的变量属于局部作用域,仅限于该函数内部。如`locals()`函数内的变量`x`,在函数外部是不可见的。如果尝试在函数外部访问局部变量,会抛出`NameError`。
```python
def local():
x = 100
print("local_x =", x + 20)
local()
# 在这里尝试访问x会报错
print(x) # NameError: name 'x' is not defined
```
3. 嵌套范围(Enclosed):
当一个函数嵌套在另一个函数内部时,嵌套函数的作用域被称为嵌套范围。例如,`local_in`函数内的`z`变量只在`local_in`内可见,`y`则在更外层的`local_out`函数内可见:
```python
x = 20
def local_out():
y = 30
def local_in():
z = 40
print('本地变量z:', z)
print('嵌套变量y:', y)
local_in()
print("全局变量x:", x)
local_out()
```
4. 内置函数(Built-in):
Python有一些内置函数,如`print`、`len`等,它们在任何作用域下都可以直接使用,无需特别声明。这些函数是Python语言的一部分,不需要用户定义。
Python的作用域机制帮助开发者管理代码的可读性、组织性和一致性。理解并熟练运用这些作用域规则对于编写高效、清晰的代码至关重要。通过实践和理解不同作用域的特性,可以减少潜在的错误,并提升代码的复用性和维护性。
2023-07-31 上传
2023-06-04 上传
点击了解资源详情
2017-10-08 上传
2023-04-15 上传
2023-07-31 上传
2020-12-21 上传
2024-05-21 上传
2024-02-21 上传
weixin_38681628
- 粉丝: 4
- 资源: 892
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目