详解Python 中的命名空间、变量和范围

 更新时间:2022年09月04日 09:52:01   作者:哈哈哈来了啊啊啊  
Python 是一种动态类型语言,在程序执行期间,变量名可以绑定到不同的值和类型,这篇文章主要介绍了Python 中的命名空间、变量和范围,需要的朋友可以参考下

Python 中的命名空间、变量和范围

什么是命名空间?

首先,我们需要感知python中的名称(标识符)是什么。众所周知,在python中,一切都是对象。名称帮助我们访问底层对象。例如,当我们做作业时 a = 1 , 1 是存储在内存中的对象,a 是我们与之关联的名称。我们可以通过内置函数获取某个对象的地址(在 RAM 中), ID() .让我们看看如何使用它。

 a = 1  
 打印('id(1)=',id(1))  
  
 打印('id(a)=',id(a)) 输出: id(1) = 9801248  
 id(a) = 9801248

在这里,两者都指同一个对象 1 ,所以他们拥有相同的id。

现在我们知道了名称是什么,我们可以继续讨论名称空间的概念。简单地说,命名空间是名称的集合。在 Python 中,您可以将命名空间想象为您定义的每个名称到相应对象的映射。不同的命名空间可以在给定时间共存,但完全隔离。当我们启动 Python 解释器时,会创建一个包含所有内置名称的命名空间,并且只要解释器​​运行,它就存在。这就是内置函数像 ID() , 打印() 我们始终可以从程序的任何部分获得等。每个模块创建自己的全局命名空间。这些不同的命名空间是隔离的。因此,不同模块中可能存在的相同名称不会发生冲突。

变量和表达式

要将现实世界的问题转化为可以通过算法解决的问题,有两个相互关联的任务。首先,选择变量,其次,找到与这些变量相关的表达式。变量是附加在对象上的标签;它们不是对象本身。它们也不是对象的容器。变量不包含对象,而是充当对象的指针或引用。例如,考虑以下代码:

在这里,我们创建了一个变量 a,它指向一个列表对象。我们创建另一个变量 b,它指向同一个列表对象。当我们向这个列表对象追加一个元素时,这种变化会同时反映在 a 和 b 中。

Python 是一种动态类型语言。在程序执行期间,变量名可以绑定到不同的值和类型。例如,每个值都是类型、字符串或整数;但是,指向该值的名称没有特定类型。这与许多语言(例如 C 和 Java)不同,其中名称表示内存中的固定大小、类型和位置。这意味着当我们在 Python 中初始化变量时,我们不需要声明类型。此外,变量,或者更具体地说是它们指向的对象,可以根据分配给它们的值更改类型,例如:

变量范围

了解函数内部变量的作用域规则很重要。每次执行函数时,都会创建一个新的本地命名空间。这表示一个本地环境,其中包含由函数分配的参数和变量的名称。为了在调用函数时解析命名空间,Python 解释器首先搜索本地命名空间(即函数本身),如果未找到匹配项,则搜索全局命名空间。这个全局命名空间是定义函数的模块。如果仍未找到该名称,它将搜索内置命名空间。最后,如果失败,则解释器会引发 NameError 异常。考虑以下代码:

在示例中,定义了两个全局变量。我们需要使用关键字 global 告诉解释器,在函数内部,我们指的是一个全局变量。当我们将此变量更改为 11 时,这些更改会反映在全局范围内。但是,我们设置为 21 的变量 b 是函数的局部变量,函数内部对其所做的任何更改都不会反映在全局范围内。当我们运行函数并打印 b 时,我们看到它保留了它的全局值。

到此这篇关于Python 中的命名空间、变量和范围的文章就介绍到这了,更多相关Python命名空间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 简单的股票基金爬虫

    python 简单的股票基金爬虫

    最近基金非常火爆,很多原本不投资、不理财人,也开始讨论、参与买基金了。根据投资对象的不同,基金分为股票型基金、债券基金、混合型基金、货币基金。所以今天我们就来看看,这些基金公司都喜欢买那些公司的股票。
    2021-06-06
  • python生成任意频率正弦波方式

    python生成任意频率正弦波方式

    今天小编就为大家分享一篇python生成任意频率正弦波方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python反转(逆序)字符串的6种方法详细

    python反转(逆序)字符串的6种方法详细

    这篇文章主要介绍了python反转(逆序)字符串的6种方法详细,需要的朋友可以参考下
    2021-04-04
  • 小试Python中的pack()使用方法

    小试Python中的pack()使用方法

    这篇文章主要介绍了小试Python中的pack()使用方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Pandas执行SQL操作的实现

    Pandas执行SQL操作的实现

    使用SQL语句能够完成对table的增删改查操作,Pandas同样也可以实现SQL语句的基本功能,本文就来介绍一下,具有一档的参考价值,感兴趣的可以了解一下
    2024-07-07
  • django框架CSRF防护原理与用法分析

    django框架CSRF防护原理与用法分析

    这篇文章主要介绍了django框架CSRF防护原理与用法,结合实例形式分析了Django框架CSRF防护的概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-07-07
  • python 爬取微信文章

    python 爬取微信文章

    本文给大家分享的是使用python通过搜狗入口,爬取微信文章的小程序,非常的简单实用,有需要的小伙伴可以参考下
    2016-01-01
  • Python使用修饰器执行函数的参数检查功能示例

    Python使用修饰器执行函数的参数检查功能示例

    这篇文章主要介绍了Python使用修饰器执行函数的参数检查功能,结合具体实例形式分析了Python实现修饰器针对函数参数检查的原理、步骤与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 在Python 的线程中运行协程的方法

    在Python 的线程中运行协程的方法

    这篇文章主要介绍了在Python 的线程中运行协程的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • python淘宝抢购脚本程序实现

    python淘宝抢购脚本程序实现

    大家好,本篇文章主要讲的是python淘宝抢购脚本程序实现,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02

最新评论