首页 后端开发 Python教程 Python 中的 globals()、locals() 和 vars() 有什么不同?

Python 中的 globals()、locals() 和 vars() 有什么不同?

Nov 17, 2024 am 02:16 AM

How Do globals(), locals(), and vars() Differ in Python?

探索 globals()、locals() 和 vars() 的细微差别

Python 提供了三个内省函数,可以深入了解当前命名空间:globals()、locals() 和 vars()。每个都返回一个包含特定信息的字典。

globals()

globals() 始终返回当前模块名称空间的字典。它提供对模块内所有全局定义名称的访问。

locals()

locals() 是动态的,其行为取决于范围。

  • 在函数内: locals() 返回函数名称空间的字典。它包括调用时的局部变量以及闭包变量。对字典的更新反映在局部变量中。但是,对返回字典的赋值不会修改局部变量。

例如,在函数中:

def example():
    x = 1
    l = locals()
    l['x'] = 3
    print(x)  # Outputs 1, not 3
登录后复制
  • 函数外部: locals() 返回实际的命名空间字典。对字典所做的更改会反映在命名空间中,反之亦然。

例如:

class Test:
    a = 'one'
    huh = locals()
    b = 'two'
    huh['c'] = 'three'
    print(huh)  # Outputs {'a': 'one', 'b': 'two', 'c': 'three', 'huh': {...}}
登录后复制

vars()

vars() 接受一个对象作为其参数并返回其 dict 属性。通常,对象的 dict 存储其属性数据。因此,向 vars() 提供对象可以访问其属性。

class Test:
    a = 'one'
    b = 'two'
    huh = vars(self)
    c = 'three'
    huh['d'] = 'four'
登录后复制

在此示例中,vars(self) 返回 Test 实例的 dict 属性,允许访问它的属性如“a”、“b”和“c”。

以上是Python 中的 globals()、locals() 和 vars() 有什么不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

我如何使用美丽的汤来解析HTML? 我如何使用美丽的汤来解析HTML? Mar 10, 2025 pm 06:54 PM

我如何使用美丽的汤来解析HTML?

python中的图像过滤 python中的图像过滤 Mar 03, 2025 am 09:44 AM

python中的图像过滤

如何使用Python查找文本文件的ZIPF分布 如何使用Python查找文本文件的ZIPF分布 Mar 05, 2025 am 09:58 AM

如何使用Python查找文本文件的ZIPF分布

如何使用Python使用PDF文档 如何使用Python使用PDF文档 Mar 02, 2025 am 09:54 AM

如何使用Python使用PDF文档

如何在django应用程序中使用redis缓存 如何在django应用程序中使用redis缓存 Mar 02, 2025 am 10:10 AM

如何在django应用程序中使用redis缓存

如何使用TensorFlow或Pytorch进行深度学习? 如何使用TensorFlow或Pytorch进行深度学习? Mar 10, 2025 pm 06:52 PM

如何使用TensorFlow或Pytorch进行深度学习?

如何在Python中实现自己的数据结构 如何在Python中实现自己的数据结构 Mar 03, 2025 am 09:28 AM

如何在Python中实现自己的数据结构

python对象的序列化和避难所化:第1部分 python对象的序列化和避难所化:第1部分 Mar 08, 2025 am 09:39 AM

python对象的序列化和避难所化:第1部分

See all articles