下面将详细讲解 “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
类,它有 name
和 age
两个属性。我们实例化一个 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__
属性将不可用。
希望上述内容对你有所帮助!