本文共 1585 字,大约阅读时间需要 5 分钟。
在Python中,vars()函数是一个非常有用的工具,它返回当前作用域中变量的命名空间。对于类对象来说,vars()的行为类似于访问类的__dict__属性。通过这段代码,我们可以深入了解类的属性和内部结构。
class MyDict: name = "jjw" age = 14result = vars(MyDict)print(result)print("*" * 30)print(MyDict.__dict__)print(result == MyDict.__dict__)print('-' * 30)print(vars())print('#' * 30)# locals()函数会返回当前函数或方法的局部变量字典print(locals())# 通过比较vars()和locals(),可以看出它们的相似性print(vars() == locals()) 打印结果:
{'__module__': '__main__', 'name': 'jjw', 'age': 14, '__dict__': , '__weakref__': , '__doc__': None}******************************{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x103210c70>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': '/Users/jjw/Desktop/后端项目/yolov5_v3/my_test.py', '__cached__': None, 'MyDict': , 'result': mappingproxy({'__module__': '__main__', 'name': 'jjw', 'age': 14, '__dict__': , '__weakref__': , '__doc__': None})}------------------------------{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x103210c70>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': '/Users/jjw/Desktop/后端项目/yolov5_v3/my_test.py', '__cached__': None, 'MyDict': , 'result': mappingproxy({'__module__': '__main__', 'name': 'jjw', 'age': 14, '__dict__': , '__weakref__': , '__doc__': None})} 通过这段代码,我们可以看到vars()函数不仅可以获取当前作用域中的变量,还可以用来获取类的属性。通过比较vars()和locals(),我们可以看出它们在某些情况下具有相似的行为。
转载地址:http://lrafk.baihongyu.com/