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))
```
我的笔记