2.4'de, her zaman böyle işlemler için set işlemleri kullanıyorum. bunu bir uyarı değerinde (veya mesaj için veya istisna diğer tür) Eğer bazı beklenen anahtarları eksik olduğunda, özellikle, yapmam:
missing = set(d).difference(('a', 'b', 'c'))
if missing:
logging.warn("Missing keys: %s", ', '.join(sorted(missing)))
else:
...
uygun logging.warn
çağrıyı yerine, elbette (belki sadece logging.info veya Hatta logging.debug, belki logging.error, belki bir istisna).
sorted
bölümü çoğunlukla kozmetiktir (güvenilir, yinelenebilir hata iletilerini severim), fakat aynı zamanda sınamada biraz yardımcı olur (logging.warn - veya herneyse) - sınamalarında Belirli bir dizgeyi beklerseniz ve missing
setini sıralamamış olsaydım, uyarı dizgisi değişebilirdi, elbette, setler, dikteler gibi, bir sipariş kavramına sahip değiller).
setini (sub_dict) kullanıyorsa .issubset (parent_dict) da çalışıyor gibi görünüyor ve benim için daha basit. Ama işaretçi için teşekkürler :) – trojjer