python命名空间(namespace)简单介绍


Posted in Python onAugust 10, 2019

命名空间: 每一个作用域变量存储的位置,或者解释为 存储作用域中变量的字典。

作用: 获取想查看某个作用域中的变量名、变量值。

使用方法: locals() #当前命名空间

1. 效果图:

python命名空间(namespace)简单介绍

2. 代码

a=10
b=20
# 定义一个变量接收全局命名空间里的变量名、变量值
global_namespace=locals()
print(global_namespace)
print('\n\n\n')
def one():
  c=30
  d=40
  # 定义一个变量接收局部命名空间里的变量名、变量值
  local_namespace=locals()
  print(local_namespace)
# 调用one函数
one()
# 命名空间(namespace)
# 命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名空间当中
# 每一个作用域都会有一个它对应的命名空间
# 全局命名空间,用来保存全局变量。函数命名空间用来保存函数中的变量
# 命名空间实际上就是一个字典,是一个专门用来存储变量的字典

# locals()用来获取当前作用域的命名空间
# 如果在全局作用域中调用locals()则获取全局命名空间,如果在函数作用域中调用locals()则获取函数命名空间
# 返回的是一个字典
scope = locals() # 当前命名空间
print(type(scope))
# print(a)
# print(scope['a'])
# 向scope中添加一个key-value
scope['c'] = 1000 # 向字典中添加key-value就相当于在全局中创建了一个变量(一般不建议这么做)
# print(c)
def fn4():
  a = 10
  # scope = locals() # 在函数内部调用locals()会获取到函数的命名空间
  # scope['b'] = 20 # 可以通过scope来操作函数的命名空间,但是也是不建议这么做

  # globals() 函数可以用来在任意位置获取全局命名空间
  global_scope = globals()
  # print(global_scope['a'])
  global_scope['a'] = 30
  # print(scope)

fn4()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python简单获取本机计算机名和IP地址的方法
Jun 03 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
python版DDOS攻击脚本
Jun 12 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
python实现扑克牌交互式界面发牌程序
Apr 22 Python
浅析Python迭代器的高级用法
Jul 16 Python
python打包多类型文件的操作方法
Sep 21 Python
python两种注释用法的示例
Oct 09 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 Python
简单介绍python封装的基本知识
Aug 10 #Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 #Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 #Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 #Python
基于python二叉树的构造和打印例子
Aug 09 #Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 #Python
Django ORM 自定义 char 类型字段解析
Aug 09 #Python
You might like
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
Javascript面向对象编程
2012/03/18 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
python 容器总结整理
2017/04/04 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
前台文员岗位职责
2013/12/28 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
青年文明号创建承诺
2014/03/31 职场文书
科技之星事迹材料
2014/06/02 职场文书
师范生见习总结范文
2015/06/23 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL