import collections
d1 = {'a': 'AA', 'b': '***', 'c': 'CC'}
d2 = {'b': 'BB', 'f': 'GG'}
cm1 = collections.ChainMap(d1, d2)
cm2 = cm1.new_child()
print('cm1:', cm1)
print('cm2:', cm2)
print()
cm2['b'] = 'PYTHON'
print('cm1:', cm1)
print('cm2:', cm2)
'''
run:
cm1: ChainMap({'a': 'AA', 'b': '***', 'c': 'CC'}, {'b': 'BB', 'f': 'GG'})
cm2: ChainMap({}, {'a': 'AA', 'b': '***', 'c': 'CC'}, {'b': 'BB', 'f': 'GG'})
cm1: ChainMap({'a': 'AA', 'b': '***', 'c': 'CC'}, {'b': 'BB', 'f': 'GG'})
cm2: ChainMap({'b': 'PYTHON'}, {'a': 'AA', 'b': '***', 'c': 'CC'}, {'b': 'BB', 'f': 'GG'})
'''