我目前有一个名为“modules_dict”的有序字典。在“modules_dict”中有类“module_class”的对象,每个对象都可以有“submods”的实例,这些实例也是“module_class”类,依此类推。
我的问题是:如果说存在名称为“digital”的类“module_class”,我该如何检查每个“module_class”及其任何“submods”,如果存在则替换它?
class module_class:
self.name
self.submods = OrderedDict()
例子:
modules_dict = {
"angel": module_class(submods = {
"analog": module_class(submods = {
"digital": module_class()})
})
}
非理想解决方案(下面的“self”代表 module_class “digital”):
for mod in modules_dict.values():
for submod in mod.submods.values():
for sub in submod:
if self.name == sub.name:
modules_dict[mod.name].submods[sub.name] = [self]
for sm in sub.submods.values():
for s in sm:
if self.name == s.name:
modules_dict[mod.name].submods[sub.name].submods[s.name] = [self]
显然不知道需要多少个 for 循环。我正在考虑使用递归,但我不知道如何更改字典“modules_dict”