在Python中从字典向对象传递示例属性?

wh6knrhe  于 2023-07-01  发布在  Python
关注(0)|答案(1)|浏览(97)

我有一个类C,具有n示例属性a1, a2, a3, ..., an和一个字典
d = {'ai': x, 'aj': y, 'ak': z, ..., 'be': p, 'bf': q, 'bg': r, ...}
包含那些示例属性中的一些的值和一些其它条目。
构造对象O = C()。有没有更好的方法来传递属性值

O.ai = d['ai']
O.aj = d['aj']
O.ak = d['ak']

……等等?

rryofs0p

rryofs0p1#

如果C是一个常规类,你可以直接更新它的__dict__

class C:
    def update(self, d):
        vars(self).update(d)

c = C()
c.update({'foo': 123, 'bar': 456})
print(c.foo)
print(c.bar)

为了让您的IDE或mypy满意,在类主体或__init__中声明这些属性是有意义的:

class C:
    foo: int
    bar: int
    ...etc

相关问题