📜  在Python中查看所有定义的变量(1)

📅  最后修改于: 2023-12-03 15:07:55.919000             🧑  作者: Mango

在Python中查看所有定义的变量

在Python中,我们经常需要查看当前已定义的变量,以便于调试和理解程序代码。本文将介绍几种方法来查看所有定义的变量。

使用dir函数

Python 中的 dir 函数可以返回对象的所有属性和方法。当我们传入一个模块作为参数时,它可以帮助我们查看模块中定义的所有变量。

# 查看当前模块中定义的所有变量
import sys

from pprint import pprint

pprint(dir(sys.modules[__name__]))

上面的代码输出的结果是 Python 模块中定义的所有变量和函数的名称列表。其中,以双下划线开头和结尾的名称是特殊的方法或变量,不需要我们关注。

使用vars函数

vars 函数是 Python 内置函数之一,它用于返回对象(模块、类、实例或字典等)内容的属性和值。当我们不传递任何参数时,vars 函数返回当前作用域(global 或局部)的变量。

# 查看当前作用域(global 或局部)的变量
pprint(vars())

上面的代码输出的结果是当前作用域(global 或局部)中定义的所有变量和函数的名称列表。

使用globals函数

globals 函数是 Python 内置函数之一,它返回当前全局作用域中定义的变量和它们的值。与 vars 函数不同,它仅返回全局作用域中的变量。

# 查看当前全局作用域的变量
pprint(globals())

上面的代码输出的结果是当前全局作用域中定义的所有变量和函数的名称和值列表。

使用locals函数

locals 函数和 globals 函数相似,但它返回的是当前函数或方法的局部作用域中定义的变量和对应值。如果在全局作用域中调用 locals 函数,则它将返回全局作用域中的变量和对应值。

# 查看当前局部作用域的变量
def foo():
    x = 1
    y = 'hello'
    pprint(locals())

foo()

上面的代码输出的结果是当前局部作用域(在 foo 函数中)中定义的变量和对应值。

总结:

  1. 使用 dir 函数可以查找模块中定义的所有变量;
  2. 使用 vars 函数可以查看当前作用域(global 或局部)的所有变量;
  3. 使用 globals 函数可以查看当前全局作用域中的所有变量;
  4. 使用 locals 函数可以查看当前函数或方法局部作用域中的所有变量。