命名空间 | Python从入门到精通:高阶篇之十

简介: 命名空间(namespace)就是变量存储的位置。每一个变量都需要存储到指定的命名空间当中。

命名空间概述

命名空间(namespace)就是变量存储的位置。每一个变量都需要存储到指定的命名空间当中。

每一个作用域都会有一个它对应的命名空间:全局命名空间,用来保存全局变量。函数命名空间用来保存函数中的变量。

命名空间实际上就是一个字典,是一个专门用来存储变量的字典。

命名空间举例

locals()

用来获取当前作用域的命名空间。如果在全局作用域中调用locals()则获取全局命名空间,如果在函数作用域中调用locals()则获取函数命名空间,返回的是一个字典。

scope = locals() # 当前命名空间
print(scope)

执行结果为:
image.png

scope = locals() # 当前命名空间
print(type(scope))
print(a)
print(scope['a'])

image.png
显示的形式就是一个字典,所有的变量都保存在该字典里。而且直接打印的a和scope里面的a是一样的。

我们可以通过操作这个字典来操作变量,比如:向scope中添加一个key-value

scope['c'] = 1000 
print(c)

执行结果为:
image.png

向字典中添加key-value就相当于在全局中创建了一个变量(一般不建议这么做)。

还有一种做法:在函数内部调用locals()会获取到函数的命名空间。

def fn4():
    a = 10
    scope = locals() 
    scope['b'] = 20 

执行结果为:
image.png
这里的locals是函数内的作用域。在命名空间里面添加了一个b,可以通过scope来操作函数的命名空间,但是也不建议这么做。

只需要知道变量是存储在这里就可以了,不需要去改变。

globals()

接下来介绍一个新函数globals,它是一个全局命名空间。 globals() 函数可以用来在任意位置获取全局命名空间。

def fn4():
    a = 10
    global_scope = globals()
    global_scope['a'] = 30
fn4()    

执行结果为:
image.png
此时就可以在函数内部来改变全局变量了。

点击查看配套视频教程

获取更多内容请订阅Python学习站官方技术圈!

相关文章
|
1天前
|
数据采集 机器学习/深度学习 前端开发
【好书推荐3】Python网络爬虫入门到实战
【好书推荐3】Python网络爬虫入门到实战
9 0
|
5天前
|
机器学习/深度学习 数据采集 数据可视化
利用Python进行历史数据预测:从入门到实践的两个案例分析
利用Python进行历史数据预测:从入门到实践的两个案例分析
19 1
|
11天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
11天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
|
13天前
|
Python
【Python21天学习挑战赛】-入门必备
【Python21天学习挑战赛】-入门必备
|
16天前
|
存储 Python
python入门指南
python入门指南
21 0
|
17天前
|
机器学习/深度学习 自然语言处理 算法
利用Python进行情感分析:从入门到实践
【4月更文挑战第24天】 在数字化时代,文本数据无处不在。理解这些文本背后的情绪倾向对于品牌管理、市场研究乃至政治分析都至关重要。本文将引导读者通过Python编程语言实现基本的情感分析任务,涵盖从预处理步骤到模型训练和结果解释的全过程。我们将使用流行的自然语言处理库NLTK和机器学习框架scikit-learn来构建一个简单的情感分析模型,并探索如何将其应用于实际场景中。
|
17天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
17天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
17天前
|
Python
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构