我需要使用 Python 2.7 将字典转换为类型化对象。
例如,如果我有这个字典:
mapy = {'id': 1, 'name': 'bob'}
我需要一些方法在运行时根据之前的映射和类型名称(在本例中为 'Person'
)生成此类:
class Person:
def __init__(self):
self.id = id
self.name = name
我应该考虑使用元编程技术吗?如果是的话,究竟是哪一种(装饰器、元类……)?
请注意,我不仅需要将字典转换为对象;我还需要将一些类型信息附加到生成的对象。
最佳答案
你可以尝试namedtuple
:
from collections import namedtuple
mapy = { 'id' : 1, 'name' : 'bob'}
# Note that the order of `mapy.keys()` is unpredictable.
Person = namedtuple('Person', mapy.keys())
p = Person(**mapy)
p.id
p.name
关于python - 如何将 Python dict 转换为特定类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290832/