Trong 2.4, tôi luôn sử dụng các hoạt động đã đặt cho các mục đích như vậy. Nếu nó có giá trị một cảnh báo (hoặc loại khác của msg hoặc ngoại lệ) khi một số phím mong muốn bị thiếu, đặc biệt là, tôi làm:
missing = set(d).difference(('a', 'b', 'c'))
if missing:
logging.warn("Missing keys: %s", ', '.join(sorted(missing)))
else:
...
thay thế logging.warn
gọi là thích hợp, tất nhiên (có lẽ chỉ logging.info hoặc thậm chí logging.debug, có thể logging.error, có thể là một ngoại lệ).
Phần sorted
phần lớn là mỹ phẩm (tôi thích thông báo lỗi đáng tin cậy, lặp lại) nhưng cũng giúp kiểm tra một chút (khi tôi giả lập logging.warn - hoặc bất kỳ điều gì - trong các bài kiểm tra, thật tuyệt vời để có thể mong đợi một chuỗi cụ thể và nếu tôi không sắp xếp các missing
đặt chuỗi cảnh báo có thể khác nhau, tất nhiên, vì các bộ, giống như lệnh dicts, không có khái niệm về thứ tự).
Nguồn
2010-08-05 14:27:58
set (sub_dict) .issubset (parent_dict) dường như cũng hoạt động và nó đơn giản hơn với tôi. Nhưng nhờ con trỏ :) – trojjer