(给Python开发者加星标,提升Python技能)

来源:南枝向暖北枝寒MA

https://blog.csdn.net/mall_lucy/article/details/104848246

【导语】:对命名空间和作用域认识很模糊?不清楚?为了让大家有清晰的认识,本文详细介绍了命名空间类型及作用域,希望能让你对python有更深刻的认识。

一、命名空间

1.内置名称空间

存放的是一些内置函数,比如input,print,list,len等。

2.全局名称空间

存放的是当前py文件中(除去函数、类内部的)变量与值的对应关系以及函数名与函数的内存地址的对应关系。

3.局部(临时)名称空间

存放的是函数内部的变量与值的对应关系。当一个函数被调用时,开辟临时名称空间,当函数执行结束后,临时名称空间消失。如果一个函数被调用多次,则每调用一次,都要重新开辟临时名称空间。

4.加载顺序

内置命名空间(程序运行开始加载)--->全局命名空间(程序运行中加载,从上到下)--->局部命名空间(程序运行中加载,调用时才加载)

5.取值顺序

遵循就近原则(LEGB原则)1. 从局部找时,局部名称空间--->全局名称空间--->内置名称空间2. 从全局找时,全局名称空间--->内置名称空间

二、作用域

两个作用域:全局作用域和局部作用域。全局作用域:全局命名空间+内置命名空间局部作用域:局部命名空间局部作用域可以引用全局作用域的变量。但不能修改全局作用域的变量。

三、代码示例

count = 1def func():    count = 100    print(count)func() # 解释:这段代码不叫修改全局变量,而是在局部创建了一个新的变量。
count = 1def func():    count += 1    print(count)func()报错信息:local variable 'count' referenced before assignment#解释:局部作用域不能改变全局作用域的变量,当python解释器读取到局部作用域时,#发现了你对一个变量进行修改的操作,解释器会认为你在局部已经定义过这个局部变量了,#解释器就会从局部找这个局部变量,其实并没有定义,所以报错。

- EOF -

推荐阅读  点击标题可跳转

1、Python 中的作用域规则和闭包简析

2、Python 作用域和 LEGB

3、Stack Overflow 热帖:如何用 Python 调用外部命令

觉得本文对你有帮助?请分享给更多人

关注「Python开发者」加星标,提升Python技能

点赞和在看就是最大的支持❤️

spool文件命名引用两个变量_Python 中命名空间与作用域介绍相关推荐

  1. Python如何在循环语句中加入两个变量_Python基础知识

    一.Python关键字 共:31个.注意:如果要现在自己电脑中运行我写的这些代码,需要在第一行加上 #coding:utf-8,因为我的输出中有中文.1.and:表示逻辑'与'2.del:用于list ...

  2. python函数返回多个变量_Python中接收函数多个返回结果的两种方法

    在Python中函数经常会返回多个值,今天我们一起来讲解一下接收多个函数返回值的方法 工具/原料 电脑 Python开发工具 方法/步骤 1 用def 代码创建一个函数,名称为func1 代码如下: ...

  3. python中的变量_Python中的变量

    python中的变量 This lesson deals with variables. Those who already know some programming must be familia ...

  4. python如何复制一个变量_Python中变量、赋值、浅拷贝、深拷贝

    在理解浅拷贝和深拷贝之前,首先要理解学习一下变量在Python中是怎样存储的: 变量的类型是分值引用与地址引用两种. python的一切变量都是对象,变量的存储,采用了地址引用的方式,存储的只是一个变 ...

  5. python 获取值类型用于定义变量_Python中的变量和简单数据类型

    变量: 变量是存储在内存中的值,在创建变量时会在内存中开辟一个空间. 变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符串. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存 ...

  6. python公共变量_Python中的公共变量

    python公共变量 By default all numbers, methods, variables of the class are public in the Python programm ...

  7. python中如何连接两个字符串_python中5种连接字符串的方法

    字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...

  8. python标志变量_Python 中的 global 标识对变量作用域的影响

    global 标识用于在函数内部,修改全局变量的值. 我们可以通过以下规则,来判定一个变量到底是在全局作用域还是局部作用域: 变量定义在全局作用域,那就是全局变量. 变量在函数中定义,并且加了 glo ...

  9. python的命名空间_python中命名空间的三种方式介绍(附示例)

    本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python中的命名空间分三种: 内置的命名空间,在启动解 ...

  10. python中函数的作用域_Python中的函数作用域

    在python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:', ...

最新文章

  1. javascript:document的属性和方法,title,innerHTML,
  2. 2021年8月Web服务器排行榜:Nginx牛市上升
  3. python设计一个函数定义计算并返回n价调和函数_音乐编程语言musicpy教程(第三期) musicpy的基础语法(二)...
  4. iOS开发——高级技术通讯录功能的实现
  5. 21- vue django restful framework 打造生鲜超市 -首页商品分类显示功能
  6. NoSQL之HBase
  7. 作为测试人员,不要说有错误,要说有什么错误
  8. 奇怪的加拿大:一方面大力禁烟,另一方面放松大麻
  9. Python(PyCharm)的下载安装汉化(2022)
  10. java判断日文_java判断字符串是否中文、日文
  11. 计算机桌面文件夹消失了,电脑桌面文件不见了怎么恢复?再也不担心系统故障...
  12. linux搭建雷霆传奇h5源码,【雷霆传奇H5服务端】2020.07最新超好看大羽翼传奇网页游戏程序[附超详尽构建实例教程]...
  13. python求两数最小公倍数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...
  14. 抖音姓名测试软件,抖音名字大全霸气
  15. ADB 常用技巧 汇总
  16. 在网页中插入MediaPlayer控件
  17. Flash和JS实现的图片幻灯片切换特效
  18. S32V234专业级AVM全景+ADAS解决方案
  19. SVN中文版客户端下载安装
  20. 计算机里没有摄像这个程序,win7系统没有摄像头不能视频的几种原因和解决方法...

热门文章

  1. 力扣-19 删除链表的倒数第N个结点
  2. Harmony OS — PageSlider滑动页面
  3. 7-9 成绩转换 (15 分)
  4. shell脚本编程学习(一)
  5. Java面向对象之内部类(访问格式)
  6. 2017-2018-1 20155220 《信息安全系统设计基础》第十四周学习总结
  7. SignalR+Redis,SignalR+Sqlserver集群部署应对海量链接
  8. windows配置caffe及matlab/python接口编译和调用(cpu/gpu)
  9. SQL Server 2008的安装
  10. How to install VNC on Ubuntu