+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Python遍历对象属性的5种方法

在 Python 中有5种方法来遍历对象的所有属性,分别是使用 dir() 函数、使用 vars() 函数、使用 __dict__ 属性、使用inspect模块 和 使用dir()+getattr()函数。下面一一介绍下如何使用这些方法和属性。 一、使用 dir()函数 dir()函数是Python内置函数之一,用于显示对象的所有属性。dir()函数返回一个列表,该列表包括对象的所有属性和方法的名称。 ``` class MyClass: def __init__(self): self.name = "Lion" self.gender = "MALE" my_object = MyClass() #my_object 对象所有属性的列表 print(dir(my_object)) ``` 二、使用 vars()函数 vars()函数是Python内置函数之一,vars()函数返回的是对象的属性字典。 ``` class MyClass: def __init__(self): self.name = "Lion" self.gender = "MALE" my_object = MyClass() #my_object 对象所有属性的字典 print(vars(my_object)) ``` 三、使用__dict__属性 使用__dict__属性返回对象的属性字典。 ``` class MyClass: def __init__(self): self.name = "Lion" self.gender = "MALE" my_object = MyClass() #my_object 对象所有属性的字典 print(my_object.__dict__) ``` 四、使用inspect模块 inspect模块是Python标准库中的一个模块,用于获取对象的信息。 ``` import inspect class MyClass: def __init__(self): self.name = "Lion" self.age = 30 self.gender = "MALE" my_object = MyClass() #my_object对象所有属性和方法的列表 print(inspect.getmembers(my_object)) ``` 五、使用dir()和getattr()函数 使用dir()和getattr()函数获取对象的所有属性值。 ``` class MyClass: def __init__(self): self.name = "Lion" self.gender = "MALE" my_object = MyClass() for attribute in dir(my_object): #过滤掉内部属性 if not attribute.startswith("__"): #获取my_object对象的所有属性和对应的值 print("AttributeName: ", attribute) print("AttributeValue: ", getattr(my_object, attribute)) ```
我的笔记