Вы можете использовать ChainMap
:
. ChainMap группирует несколько диктовок или других сопоставлений для создания единого обновляемого представления.Если карты не указаны, предоставляется один пустой словарь, так что новая цепочка всегда имеет хотя бы одно отображение.
from collections import ChainMap
context = ChainMap(_priv1, _priv2, ...)
Пример:
In [3]: _priv1 = {1: 2, 3: 4}
In [4]: _priv2 = {5: 6, 7: 8}
In [5]: from collections import ChainMap
...: context = ChainMap(_priv1, _priv2)
In [6]: context
Out[6]: ChainMap({1: 2, 3: 4}, {5: 6, 7: 8})
In [7]: _priv1.update({9: 10})
In [8]: context
Out[8]: ChainMap({1: 2, 3: 4, 9: 10}, {5: 6, 7: 8})
In [9]: context.get(9)
Out[9]: 10
Для вашего кодаНапример, я бы использовал:
from collections import ChainMap
class A:
_priv1 = {'a': 1, 'b': 2}
_priv2 = {'c': 1, 'd': 2}
_union_dict = ChainMap(_priv1, _priv2)
@classmethod
def items(cls):
return cls._union_dict.items()