要遍历所有命名范围的值,可以使用以下方法:
globals()
函数和locals()
函数来获取全局和局部命名空间的所有变量和值。然后,可以使用循环遍历所有的变量和值。# 遍历全局命名空间
for name, value in globals().items():
print(name, value)
# 遍历局部命名空间
for name, value in locals().items():
print(name, value)
dir()
函数获取当前命名空间中的所有名称(变量、函数、类等),然后通过getattr()
函数获取每个名称对应的值。# 遍历当前命名空间的所有值
for name in dir():
value = getattr(__main__, name)
print(name, value)
vars()
函数获取该命名空间中的所有变量和值。import math
# 遍历模块的所有值
for name, value in vars(math).items():
print(name, value)
class MyClass:
def __init__(self):
self.x = 10
self.y = 20
obj = MyClass()
# 遍历类的所有实例变量的值
for name, value in vars(obj).items():
print(name, value)
请注意,这些方法适用于不同的命名范围和命名空间,但要注意只能遍历可见的变量和值。