{"id":27681,"date":"2026-06-03T04:27:24","date_gmt":"2026-06-03T04:27:24","guid":{"rendered":"https:\/\/sharpinterview.online\/?sharp_quiz=python-interview-dunder-methods-protocols-pitfall"},"modified":"2026-06-03T04:27:24","modified_gmt":"2026-06-03T04:27:24","slug":"python-interview-dunder-methods-protocols-pitfall","status":"publish","type":"sharp_quiz","link":"https:\/\/sharpinterview.online\/?sharp_quiz=python-interview-dunder-methods-protocols-pitfall","title":{"rendered":"Python: Which practice avoids a common mistake with Dunder Methods and Data Model Protocols?"},"content":{"rendered":"<h2>Question<\/h2>\n<p>Which practice avoids a common mistake with Dunder Methods and Data Model Protocols?<\/p>\n<ol type=\"A\">\n<li>Do not implement special methods casually if the resulting semantics would surprise the next engineer or the caller.<\/li>\n<li>Ignore the Dunder Methods and Data Model Protocols issue and rely on team discipline instead of clearer APIs or invariants.<\/li>\n<li>Silence the Dunder Methods and Data Model Protocols problem by using broad catches, hidden globals, or extra shared mutable state.<\/li>\n<li>Prefer the version of Dunder Methods and Data Model Protocols that makes behavior less predictable as long as the code still runs.<\/li>\n<\/ol>\n<h2>Hint<\/h2>\n<p>Look for the option that protects correctness instead of hiding the problem.<\/p>\n<h2>Answer and rationale<\/h2>\n<p><strong>Correct answer:<\/strong> A. Do not implement special methods casually if the resulting semantics would surprise the next engineer or the caller.<\/p>\n<p>Do not implement special methods casually if the resulting semantics would surprise the next engineer or the caller. This is a common failure mode in real Python code and a frequent interview follow-up.<\/p>\n<p><strong>Track:<\/strong> Python<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Which practice avoids a common mistake with Dunder Methods and Data Model Protocols?<\/p>\n","protected":false},"author":1,"featured_media":0,"template":"","topic":[88,99,89],"difficulty":[7],"class_list":["post-27681","sharp_quiz","type-sharp_quiz","status-publish","hentry","topic-python","topic-python-core-dunder-methods-and-data-model-protocols","topic-python-interview-questions","difficulty-medium"],"_links":{"self":[{"href":"https:\/\/sharpinterview.online\/index.php?rest_route=\/wp\/v2\/sharp_quiz\/27681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sharpinterview.online\/index.php?rest_route=\/wp\/v2\/sharp_quiz"}],"about":[{"href":"https:\/\/sharpinterview.online\/index.php?rest_route=\/wp\/v2\/types\/sharp_quiz"}],"author":[{"embeddable":true,"href":"https:\/\/sharpinterview.online\/index.php?rest_route=\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/sharpinterview.online\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=27681"}],"wp:term":[{"taxonomy":"topic","embeddable":true,"href":"https:\/\/sharpinterview.online\/index.php?rest_route=%2Fwp%2Fv2%2Ftopic&post=27681"},{"taxonomy":"difficulty","embeddable":true,"href":"https:\/\/sharpinterview.online\/index.php?rest_route=%2Fwp%2Fv2%2Fdifficulty&post=27681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}