欢迎访问宙启技术站
智能推送

如何在Python中获取当前环境的所有变量及其值

发布时间:2024-01-16 22:41:15

在Python中,可以使用内置的globals()函数获取当前环境的所有全局变量及其值。该函数返回一个字典,其中键是变量的名称,值是变量的值。

以下是一个使用例子:

# 定义一些全局变量
name = 'Alice'
age = 25
is_student = True

# 获取当前环境的所有全局变量及其值
variables = globals()

# 遍历字典,打印每个变量及其值
for var_name, var_value in variables.items():
    print(f'{var_name}: {var_value}')

输出结果为:

__name__: __main__
__doc__: None
__package__: None
__loader__: <class '_frozen_importlib.BuiltinImporter'>
__spec__: None
__annotations__: {}
name: Alice
age: 25
is_student: True

可以看到,除了我们定义的三个变量,还有一些预定义的Python全局变量,如__name____doc__等。

如果想只获取自定义的全局变量,可以筛选字典中的键。以下是一个示例:

# 定义一些全局变量
name = 'Alice'
age = 25
is_student = True

# 获取当前环境的所有全局变量及其值
variables = globals()

# 筛选自定义的全局变量
custom_variables = {var_name: var_value for var_name, var_value in variables.items() if not var_name.startswith('__')}

# 遍历字典,打印每个变量及其值
for var_name, var_value in custom_variables.items():
    print(f'{var_name}: {var_value}')

输出结果为:

name: Alice
age: 25
is_student: True

这样,只打印了我们自己定义的全局变量。

需要注意的是,globals()函数只能获取全局变量,无法获取局部变量。如果需要获取局部变量,可以使用内置的locals()函数。用法与globals()类似,返回一个字典,其中键是变量的名称,值是变量的值。

希望以上解答对您有帮助!