gpt4 book ai didi

python - 什么是 Python 命名空间

转载 作者:IT老高 更新时间:2023-10-28 21:33:33 24 4
gpt4 key购买 nike

我刚刚开始学习 Python,并且在 Python 中遇到了 “命名空间” 概念。虽然我知道它是什么,但我无法理解这个概念的严重性。

网上的一些浏览显示,反对 PHP 的原因之一是它不支持命名空间。

有人能解释一下如何使用命名空间以及此功能如何使编程变得更好(不仅仅是在 Python 中,因为我假设命名空间不是仅限于特定语言的概念)。

我主要来自 Java 和 C 编程背景。

最佳答案

命名空间是实现作用域的一种方式。

在 Java(或 C)中,编译器通过静态范围分析确定变量在何处可见。

  • 在 C 中,作用域要么是函数体,要么是全局的,要么是外部的。编译器会为您解释这一点,并根据范围规则解析每个变量名称。编译所有模块后,外部名称由链接器解析。

  • 在 Java 中,作用域是方法函数的主体,或类的所有方法。一些类名也具有模块级范围。同样,编译器会在编译时计算出这一点,并根据作用域规则解析每个名称。

在 Python 中,每个包、模块、类、函数和方法函数都拥有一个“命名空间”,在其中解析变量名。另外,如果名称不在本地命名空间中,则使用全局命名空间。

每个变量名在本地命名空间(函数体、模块等)中检查,然后在全局命名空间中检查。

变量通常只在本地命名空间中创建。 globalnonlocal 语句可以在本地命名空间之外创建变量。

当一个函数、方法函数、模块或包被评估(即开始执行)时,一个命名空间被创建。将其视为“评估上下文”。当一个函数或方法函数等完成执行时,命名空间被删除。变量被删除。对象也可能被丢弃。

关于python - 什么是 Python 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3913217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com