W wersji 2.4 zawsze używam operacji ustawiania dla takich celów. Czy warto ostrzeżenie (lub inny rodzaj MSG lub wyjątku), gdy niektóre klawisze są oczekiwane brakuje, zwłaszcza, robię:
missing = set(d).difference(('a', 'b', 'c'))
if missing:
logging.warn("Missing keys: %s", ', '.join(sorted(missing)))
else:
...
zastępując połączenia logging.warn
odpowiednio, oczywiście (może po prostu logging.info lub nawet logging.debug, być może logging.error, może wyjątek).
Część jest w większości kosmetyczna (lubię wiarygodne, powtarzalne komunikaty o błędach), ale pomaga też trochę w testowaniu (kiedy robię makiety logging.warn - lub cokolwiek innego - w testach miło jest móc oczekuj określonego ciągu, a jeśli nie posortowałem zestawu missing
, ciąg znaków ostrzegawczych może się różnić, ponieważ zestawy, takie jak dict, nie mają pojęcia porządku).
zestaw (sub_dict) .issubset (parent_dict) wydaje się również działać, i jest to dla mnie prostsze. Ale dzięki za wskaźnik :) – trojjer