Python 中的 Legb 规则2024 年 8 月 29 日 | 阅读 3 分钟 Python 的 LEGB 规则,顾名思义,用于 Python 解析名称。下面是对这些短语的简要解释:
LEGB 规则在 Python 查找名称时控制查找方式,这是一种名称查找操作。 总之,当我们在使用嵌套函数时,Python 会首先检查局部作用域或最内层函数的局部作用域来解析名称。然后,Python 会从最深层作用域到最外层作用域,检查所有外部函数的封闭作用域。如果找不到匹配项,Python 随后会检查全局作用域和内置作用域。如果找不到该名称,我们将收到一个警告。 根据代码执行时的位置,最多只会存在四种活动的 Python 作用域:局部、封闭、全局和内置。然而,全局和内置作用域始终是两种活跃的作用域。这两种作用域始终可供我们使用。 示例 1输出 The value of x is 8 说明 在全局命名空间中,变量 x 被定义为值 2,函数 f 被定义为一个参数,该参数打印一个字符串及其值。当调用 f 时,函数的局部命名空间将参数 a 初始化为值 8。在第 4 行,Python 首先在局部命名空间中查找 a。然后它移至最内层命名空间,并找到一个名为 a 的项,该项映射到一个值为 8 的整数。然后 Python 停止查找,并输出“a 的值是”,后跟它找到的 a 的值,“8”。 示例 2输出 The value of a is 2 说明 第 1 行定义了全局命名空间变量 a,其值为 2。在全局命名空间中,我们在第 3 行定义了函数 f。我们在第 8 行调用 f。这会在局部命名空间(位于全局命名空间内)中创建一个函数 g 和一个值为 3 的参数 y。第 6 行调用 g,它创建了一个新的局部命名空间,参数 c 的值为 3。先前通过调用 f 创建的局部命名空间现在是一个封闭命名空间。 现在我们到了打印语句!Python 现在会在已使用的命名空间中查找名为 a 的对象。由于局部命名空间中没有类似的变量,Python 会尝试在封闭命名空间中查找。Python 在全局命名空间中查找,因为 a 也没有在那里声明。我们在那里找到了一个名为 a 的项,它对应于值为 2 的对象。因此,Python 输出“a 的值是”,然后是“2”,这是全局命名空间中 a 的值。 |
字符串定义 Python 中的字符串是包含在引号中的字符序列。字符串是用于表示文本的基本数据类型。它们可以使用单引号(')、双引号(")或三引号(''' 或 """,用于多行字符串)来定义。在 Python 语言中...
11 分钟阅读
在本教程中,我们将探索 Python 的 NetworkX 库。NetworkX 代表 Python 中的网络分析。NetworkX 是 Python 的一个模块,用于操纵、创建和分析复杂网络的元素、结构和复杂性。它用于创建、操纵和研究复杂网络...
阅读9分钟
Python 的 signal 模块是标准库的一部分,它提供了处理信号的机制,信号是发送到正在运行的程序的中断。信号可用于多种目的,例如进程间通信、错误处理和超时实现。signal 模块...
阅读 17 分钟
C 语言家族(C、C++、Java、C# 等)开发的程序需要 main() 函数来指定执行的开始位置。然而,由于 Python 是一种解释型语言,也可以在交互式 shell 中使用,因此没有这样的东西……
阅读 3 分钟
肺炎是由细菌、病毒或真菌引起的一种可能危及生命的肺部感染。肺炎的早期发现和诊断对于有效治疗和改善患者预后至关重要。近年来,卷积神经网络(CNN)等深度学习技术在……
阅读 10 分钟
在本教程中,我们将使用 Python 学习统计及其组件,解决统计问题,并探索其背后的概念。统计是每个数据科学爱好者都应该很好理解的关键概念。Python 提供了一些统计库,它们...
阅读 8 分钟
在本教程中,我们将使用 Python 代码实现两数之和问题。这是数组的基本问题,您可以在 Leetcode 上找到它。我们将使用 Python 编程语言以不同的方法解决它。让我们了解问题...
阅读 6 分钟
在本教程中,我们将通过几种方式学习如何在 Python 中验证 IP 地址。当我们在编写操作系统级别的程序时,它很有用。如果我们正在使用 Django 或 Flask 开发一些 Web 应用程序,我们可能需要确定用户的 IP...
7 分钟阅读
本课程旨在对Python的数据结构和算法进行简单介绍。通过实际且经过充分解释的示例,我们将介绍列表、集合、字典、元组等内置数据结构,以及一些用户定义的数据结构,如...
21 分钟阅读
在本教程中,我们将讨论 Python 中的名称修饰过程以及如何使用不同的方法在 Python 中使用名称修饰过程。名称修饰一个过程,其中任何带有单个尾部下划线和两个前导下划线的给定标识符都会被文本替换...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India