10、深入理解Python的作用域、命名空间与模块

深入理解Python的作用域、命名空间与模块

1. 命名空间和作用域

在Python中,命名空间(namespace)和作用域(scope)是理解变量生命周期和可见性的关键概念。命名空间是Python中用于存储变量名及其对应对象的映射。作用域则定义了在特定区域中可以访问哪些变量。Python遵循LEGB规则来决定变量的查找顺序,即局部(Local)、封闭(Enclosing)、全局(Global)和内置(Built-in)。

1.1 LEGB规则详解

LEGB规则决定了Python在查找变量时的顺序:

  • L(Local) :首先在当前函数的局部作用域中查找。
  • E(Enclosing) :如果不在局部作用域中找到,则在任何封闭的函数中查找。
  • G(Global) :接着在全局作用域中查找。
  • B(Built-in) :最后在内置作用域中查找。
示例:LEGB规则的实际应用
x = 42  # 全局变量

def afun():
    global x
    x = 7  # 修改全局变量
    print(x)

afun()
print(x)  # 输出 7,因为全局变量已被修改

1.2 局部作用域

局部作用域是指在函数内部定义的变量。这些变量

相关推荐

深入理解 Python 模块的引入和使用

模块是包含 Python 定义和语句的文件,文件名以 ​​.py​​ 结尾。模块可以被其他 Python 程序导入和使用,从而实现代码的组织和重用。Python 允许用户创建自己的模块。假设我们创建一个名为 ​if y == 0:在另一个 Python 文件中,我们可以导入并使用刚才创建的 ​​ 模块。# main.py# 引入自定义模块# 使用 calculator 模块中的函数a = 10b = 5。

Web安全工具库 1110

深入理解 Python 自定义模块的定义与使用

模块是一个包含 Python 代码的文件,文件名以 ​​.py​​ 结尾。模块可以包含函数、类和变量,并且可以导入到其他 Python 程序中使用。定义自定义模块非常简单。只需创建一个 Python 文件,并在其中编写所需的函数、类和变量。在其他 Python 文件中,我们可以通过 ​​import​​ 语句导入自定义模块,并使用其提供的功能。在同一目录下创建另一个 Python 文件,命名为 ​​main.py​​。在 ​​main.py​​ 中编写以下代码:# main.py# 导入自定义模块。

Web安全工具库 1250

Python教程:深入理解Python中的命名空间和作用域

在 Python 编程中,理解命名空间(Namespace)和作用域(Scope)是至关重要的。它们决定了变量和函数的可见性和访问性,并直接影响代码的结构和行为。本文将深入探讨 Python 3 中命名空间和作用域的概念、规则以及相关的高级主题。

旦莫的博客 3067

Python学习: 命名空间、作用域、标准库简述

Python 中的命名空间指的是变量名或函数名在程序中的可见范围。这些标准库中的模块为Python提供了强大的日期和时间处理能力,可以满足各种日期和时间操作的需求,包括日期时间对象的创建、格式化、计算,以及获取时间戳和处理日历等。此外,Python 还有一个内置的命名空间,其中包含了一些默认定义的变量和函数,比如内置函数 ​print()​,它可以在任何地方直接访问。以上是Python标准库中用于测试的主要模块,它们提供了丰富的功能,可以帮助开发者编写并运行各种类型的测试,以确保代码的质量和稳定性。

百锦再的博客 4万+

【Python深入浅出㉕】解锁Python3:命名空间与作用域的奥秘

在 Python 中,命名空间就像是一个神奇的 “名字 - 对象映射表”,它本质上是通过 Python 字典来实现的。简单来说,命名空间负责管理变量名与实际对象之间的对应关系。就好比我们在电脑上整理文件,每个文件夹都可以看作是一个命名空间,文件夹中的文件名就是变量名,而文件本身就是对应的对象。在同一个文件夹中,文件名不能重复,否则就会引发冲突;但不同文件夹中的文件名可以相同,因为它们处于不同的命名空间中,彼此不会干扰。

邓邓子的博客 979

深入理解Python变量作用域与模块

本文通过分析几个具体的Python代码片段,探讨了变量作用域、函数定义以及模块导入的概念和实践。通过逐步解析代码执行的输出结果,揭示了Python中全局变量、局部变量以及模块命名空间的特性。文章不仅提供了清晰的代码示例,还给出了解决方案,帮助读者更好地理解和掌握Python编程中的这些关键概念。

weixin_35972981的博客 448

数据安全实战技能解析:从加密攻防到数字水印的竞赛指南

数据安全是信息安全领域的核心,其基础在于密码学与信息隐藏技术。密码学通过加密算法(如AES、RSA)和哈希函数,保障数据的机密性与完整性,其原理涉及对称/非对称加密、工作模式及密钥管理。数字水印技术则基于信号处理(如DCT/DWT变换),将信息嵌入多媒体载体,用于版权保护与溯源。这些技术的价值在于为数据全生命周期提供“防泄漏”与“可追溯”的解决方案,广泛应用于企业数据治理、合规审计和**数据防泄漏(DLP)** 系统。本文以一场贴近实战的**数据安全职业技能竞赛**为切入点,深入剖析如何运用密码分析、磁盘取

weixin_34314962的博客 402

避坑指南:ShardingSphere连接达梦/金仓数据库时SQL解析器的那些‘坑‘

本文深入探讨了ShardingSphere与国产数据库(如达梦、金仓)集成时遇到的SQL解析器差异问题,提供了详细的解决方案和优化策略。通过分析SQL方言差异、JDBC实现差异及解析器兼容性,帮助开发者有效避坑,提升分布式数据库架构设计的效率与稳定性。

weixin_29309475的博客 392

01-SA8155P 冷启动强制进入EDL模式

冷启动EDL模式

静虚待令,有物混成 3087

SAP FI模块实操:用F-28和F-32搞定客户回款与手动清账,别再让未清项报表一团糟

本文详细解析了SAP FI模块中F-28和F-32事务代码在客户回款与手动清账中的实操应用,帮助财务人员高效管理未清项报表。通过标准清账六步法和手动清账实战技巧,解决因操作不规范导致的账务混乱问题,提升应收账款管理效率。

weixin_30292843的博客 451

音频——DAC 性能测试

codec DAC 性能测试方法

tyustli 2234

D19: OpenClaw 安全性配置指南

在 OpenClaw 的 30 天探索旅程中,我们已经探讨了邮件自动化(D18)。今天进入安全专题,我将分享一个至关重要的话题:OpenClaw 安全性配置指南。 随着 OpenClaw 深入工作流核心,它掌握了越来越多的敏感信息: API Keys(GitHub、飞书、Notion、Jira...) 企业数据(代码库、文档、聊天记录) 个人数据(日历、邮件、任务) 系统权限(文件读写、命令执行、网络访问) 安全不是可选项,而是必选项。一次配置失误可能导致: API Key 泄露 → 账号被盗用权限

刘一说的IT专栏 203

【知识分享】CAN总线中终端网络的重要性

P沟道和N沟道晶体管的漏源通态电阻匹配良好时,形成的CANH和CANL信号匹配良好;如果驱动器的一半具有比另一半低得多的导通状态电阻,那么总线共模电压将从VCC/2的显性状态偏离,并回到VCC/2的隐性状态,这将导致每一次状态转换都会伴随着共模电压噪声,从而导致更高水平的传导和辐射能量发射。

一只豌豆象的博客 1543

从 Claude Code 到 SAP ADT,vibing-steampunk 把 ABAP 开发带进 Agentic 工程现场

vibing-steampunk(vsp)是一个连接SAP ADT API与AI编码代理的桥梁工具,通过MCP协议实现ABAP开发的自动化。它绕开传统GUI脚本方式,直接利用ADT REST API进行代码读写、调试和部署。该工具提供包分析、边界检查、LUW分析等功能,并创新性地采用Hyperfocused模式和方法级编辑来优化token使用效率。通过上下文压缩技术,vsp能智能提取关键代码片段,显著提升AI处理ABAP代码的精准度,为SAP系统现代化改造提供了高效的技术路径。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 188

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 42、Linux 系统访问与认证方法全解析
下一篇: 43、Linux系统安全访问与加密通信全解析
lambda
博客等级 码龄23年 49粉丝 1303原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值