Che*_*149 1 python dictionary metaprogramming
使用Python 2.7我需要将字典转换为类型化对象.
例如,如果我有这个词:
mapy = {'id': 1, 'name': 'bob'}
Run Code Online (Sandbox Code Playgroud)
给定前一个映射和类型名称('Person'
在此示例中),我需要一些方法在运行时生成此类:
class Person:
def __init__(self):
self.id = id
self.name = name
Run Code Online (Sandbox Code Playgroud)
我应该考虑使用元编程技术,如果是这样,那么究竟是哪一个(装饰器,元类,......)?
请注意,我不仅需要将字典转换为对象; 我还需要将一些类型信息附加到结果对象.
你可以尝试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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
119 次 |
最近记录: |