Если вы хотите динамическое связывание, это означает, что если вы хотите, чтобы новое отображение отражало изменения, внесенные в исходные диктанты, вы можете получить класс из collections.abc.Mapping
:
class DLinker(collections.abc.Mapping):
def __init__(self, d1, d2):
self.d1 = d1
self.d2 = d2
def __len__(self):
return len(self.d1)
def __getitem__(self, item):
return d2[d1[item]]
def __iter__(self):
return iter(d1)
Затем вы можете использовать:
>>> d3 = DLinker(d1, d2)
>>> for i in d3:
print(i, d3[i])
a Pomme
b Banane
>>> d1['c'] = 'Pear'
>>> d2['Pear'] = 'Poire'
>>> d3['c']
'Poire'