我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解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命名空间内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解JavaScript中的变量命名规范

程序员三大难题:变量命名、缓存失效、循环边界。这篇文章主要为大家介绍了JavaScript中的变量命名规范,感兴趣的小伙伴可以跟随小编一起学习一下
2022-12-12

怎么理解python全局变量,局部变量和命名空间

本篇内容介绍了“怎么理解python全局变量,局部变量和命名空间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 使用全局和局部变
2023-06-22

详解Python中的变量及其命名和打印

在程序中,变量就是一个名称,让我们更加方便记忆。cars = 100 space_in_a_car = 4.0 drivers = 30 passengers = 90 cars_not_driven = cars - driver
2022-06-04

Python 中的包管理和命名规范详解

模块和包是 Python 中非常重要的概念,可以帮助我们组织和管理代码,使得代码更易于维护和复用。我们可以通过创建多个模块和子包,把代码组织成一个模块层次结构,并且可以通过导入模块和包来访问其中的函数和变量。
模块Python2024-11-30

Python学习中所需的变量命名规范

学习Python时需要了解的变量命名规范在学习Python编程语言时,一个重要的方面是学习如何正确命名和使用变量。变量是用来存储和表示数据的标识符。良好的变量命名规范不仅能提高代码的可读性,还能减少出错的可能性。本文将介绍一些常用的变量命
Python学习中所需的变量命名规范
2024-01-20

关于java中变量命名规范的详细介绍

Java是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xue
关于java中变量命名规范的详细介绍
2019-10-05

Python中规范定义命名空间的一些建议

API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。 很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的。 也就是说我们只需要暴露这个方法就行,不用关心这个方法是怎么实现的,不用关心其它辅助方法的存在。
2022-06-04

详解Python语言的变量命名规则

Python语言变量命名规则详解Python作为一种广泛应用的编程语言,具备简洁、易读的特点,其中变量命名规则是开发者必须熟悉和遵守的重要内容。本文将详细解释Python语言变量命名规则,并提供具体的代码示例。变量命名的基本规则在Py
详解Python语言的变量命名规则
2024-01-20

jQuery中绑定事件的命名空间详解

jQuery的bind的函数在实际应用其实不是特别多,只是他可以绑定一个事件,但不会即时触发,也可以通过unbind来解除绑定。
2022-11-21

Python中的全局变量和局部变量详解

全局变量和局部变量在Python中的区别至关重要。全局变量在整个程序中可被访问,而局部变量仅在其定义的函数内部可见。这种区别涉及作用域和访问权限,影响程序的结构和灵活性。同时,对于避免命名冲突和程序逻辑的清晰性也至关重要。

Python中的变量和作用域详解

作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量; E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的; G:globa,全局变量,就是模块级
2022-06-04

解读Python编程中的命名空间与作用域

变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。 一个Python表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。
2022-06-04

Python中的标识符规则和变量命名注意事项

Python中的命名规则及变量命名的注意事项Python是一种简单易学、功能强大的编程语言,良好的命名规范和规则可以使代码更易读、易懂,并提高代码的可维护性。本文将介绍Python中的命名规则及变量命名的注意事项,并给出具体的代码示例。
Python中的标识符规则和变量命名注意事项
2024-01-20

如何理解 Java 变量命名与代码阅读性之间的关系?(java变量命名和代码阅读性的关系)

在Java编程中,变量命名是一个看似简单却至关重要的环节。良好的变量命名不仅能够提高代码的可读性,还能使代码更易于维护和理解。本文将深入探讨Java变量命名与代码阅读性之间的紧密关系,并提供一些实用的命名原则和技巧。一、变量命名的重要性
如何理解 Java 变量命名与代码阅读性之间的关系?(java变量命名和代码阅读性的关系)
Java2024-12-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录