gpt4 book ai didi

Python 从字典更新对象

转载 作者:IT老高 更新时间:2023-10-28 20:56:29 26 4
gpt4 key购买 nike

是否有一个内置函数/运算符可以用来从字典中解压缩值并将其分配给实例变量?

这是我打算做的:

c = MyClass()
c.foo = 123
c.bar = 123

# c.foo == 123 and c.bar == 123


d = {'bar': 456}
c.update(d)

# c.foo == 123 and c.bar == 456

类似于字典 update() 的东西,它从另一个字典加载值,但用于普通对象/类实例?

最佳答案

还有另一种方法是循环遍历 d 中的项目。这与它们将存储在 c.__dict__ 中的假设不同,这并不总是正确的。

d = {'bar': 456}
for key,value in d.items():
setattr(c,key,value)

或者您可以编写一个 update 方法作为 MyClass 的一部分,以便 c.update(d) 像您期望的那样工作。

def update(self,newdata):
for key,value in newdata.items():
setattr(self,key,value)

查看 setattr 的帮助

setattr(...)
setattr(object, name, value)
Set a named attribute on an object; setattr(x, 'y', v) is equivalent to
''x.y = v''.

关于Python 从字典更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/405489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com