【发布时间】:2019-04-02 00:33:20
【问题描述】:
我有一个类,我想用另一个实例覆盖一个实例(一个字段除外)。我的方法是这样的:
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 上的值。
【问题讨论】:
-
使用
getattr()的伴生函数setattr() -
[setattr][1] [1]: docs.python.org/3/library/functions.html#setattr
-
这似乎成功了,谢谢@kindall 和@skullgoblet1089
标签: python python-3.x class