gpt4 book ai didi

python - 如何使用变量动态访问/覆盖类中的字段?

转载 作者:行者123 更新时间:2023-12-01 08:07:38 25 4
gpt4 key购买 nike

我有一个类,我想用另一个实例覆盖一个实例(一个字段除外)。我的方法是这样的:

for key in my_class_instance_1.__dict__.keys():
if key != "key_i_dont_want_to_overwrite":
my_class_instance_1[key] = my_class_instance_2[key]

问题是我收到错误TypeError: 'MyClass' object is not subscriptable

我显然也无法访问这样的实例:my_class_instance_1.f"{key}"

我不知道如何动态访问类上的键以覆盖它。我知道我可以使用 getattr(my_class_instance_2, key) 来访问该值,但这不会帮助我覆盖 my_class_instance_1 上的值。

最佳答案

感谢 @kindall 和 @skullgoblet1089 的回复,我能够解决这个问题,但对于其他遇到此问题的人,让我向您展示工作代码:

for key in my_class_instance_1.__dict__.keys():
if key != "key_i_dont_want_to_overwrite":
val = getattr(my_class_instance_2, key) # the new value
setattr(my_class_instance_1, key, val) # overwriting the old value

getattr() 有一个名为 setattr() 的同级函数,它允许您设置属性。

关于python - 如何使用变量动态访问/覆盖类中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55465341/

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