python对象转字典的两种实现方式示例

  • Post category:Python

下面将详细讲解 “python对象转字典的两种实现方式示例” 的攻略。

1. 使用 vars() 函数转换为字典

vars() 函数可以将对象转换为字典,其中对象的属性名作为字典的键,属性的值作为字典的值。这个函数只可以转换一些特定的对象,比如自定义对象、模块、类等。

下面是一个使用 vars() 方法将自定义对象转换为字典的示例:

class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

user = User('Bob', 20)
user_dict = vars(user)
print(user_dict)  # {'name': 'Bob', 'age': 20}

这里我们定义了一个 User 类,它有 nameage 两个属性。我们实例化一个 User 对象 user,并通过 vars() 函数将其转换为字典 user_dict。最后我们打印了这个字典,结果为 {'name': 'Bob', 'age': 20}

注意,vars() 函数只能转换一些特定的对象,一些 Built-in objects(比如数值,字符串等等)是不能被转换的。

2. 使用 dict 属性转换为字典

Python 中的大多数对象都有一个名为 __dict__ 的属性。这个属性返回一个对象所包含的属性和值的字典。

下面是一个使用 __dict__ 属性将类实例转换为字典的示例:

class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

user = User('Bob', 20)
user_dict = user.__dict__
print(user_dict)  # {'name': 'Bob', 'age': 20}

这里同样定义了一个 User 类,实例化一个 User 对象 user,并通过 __dict__ 属性将其转换为字典 user_dict。最后我们打印了这个字典,结果为 {'name': 'Bob', 'age': 20}

注意,该方式只适用于类实例的转换,而不适用于其他对象的转换。除此之外,如果类中定义了 __slots__ 属性,那么 __dict__ 属性将不可用。

希望上述内容对你有所帮助!