python中将对象转为字典
时间: 2023-07-22 09:03:10 浏览: 109
python对象转字典的两种实现方式示例
在Python中,可以使用内置函数`vars()`将对象转换为字典。`vars()`函数返回对象的`__dict__`属性,这是一个字典,其中包含对象的属性和值。
例如,假设有一个名为`person`的类,它有属性`name`和`age`,则可以将一个`person`对象转换为字典,如下所示:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person('Alice', 25)
person_dict = vars(person)
print(person_dict) # {'name': 'Alice', 'age': 25}
```
另外,如果你的对象没有`__dict__`属性,你可以使用`__slots__`属性来指定对象的属性,然后使用`__getattribute__()`方法来获取属性的值,并将其存储在字典中。例如:
```python
class Person:
__slots__ = ['name', 'age']
def __init__(self, name, age):
self.name = name
self.age = age
def __getattribute__(self, item):
return object.__getattribute__(self, item)
person = Person('Alice', 25)
person_dict = {key: getattr(person, key) for key in person.__slots__}
print(person_dict) # {'name': 'Alice', 'age': 25}
```
阅读全文