{"id":27750,"date":"2026-06-03T04:27:29","date_gmt":"2026-06-03T04:27:29","guid":{"rendered":"https:\/\/sharpinterview.online\/?sharp_quiz=python-interview-abstract-base-classes-vs-protocols-usage"},"modified":"2026-06-03T04:27:29","modified_gmt":"2026-06-03T04:27:29","slug":"python-interview-abstract-base-classes-vs-protocols-usage","status":"publish","type":"sharp_quiz","link":"https:\/\/sharpinterview.online\/?sharp_quiz=python-interview-abstract-base-classes-vs-protocols-usage","title":{"rendered":"Python: When should a Python developer choose Abstract Base Classes vs Protocols deliberately?"},"content":{"rendered":"<h2>Question<\/h2>\n<p>When should a Python developer choose Abstract Base Classes vs Protocols deliberately?<\/p>\n<ol type=\"A\">\n<li>Choose Abstract Base Classes vs Protocols mainly when you want to postpone validation and fix issues manually later.<\/li>\n<li>Choose protocols when collaborators need the same methods but should not be forced into one inheritance tree.<\/li>\n<li>Choose Abstract Base Classes vs Protocols whenever you want the code to look more advanced, even if the design gets less clear.<\/li>\n<li>Choose Abstract Base Classes vs Protocols only to avoid modeling the real data shape or domain contract explicitly.<\/li>\n<\/ol>\n<h2>Hint<\/h2>\n<p>Think about the production scenario where the choice genuinely improves the code.<\/p>\n<h2>Answer and rationale<\/h2>\n<p><strong>Correct answer:<\/strong> B. Choose protocols when collaborators need the same methods but should not be forced into one inheritance tree.<\/p>\n<p>Choose protocols when collaborators need the same methods but should not be forced into one inheritance tree. Interviewers often ask this to see whether you can connect the concept to real design decisions.<\/p>\n<p><strong>Track:<\/strong> Python<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When should a Python developer choose Abstract Base Classes vs Protocols deliberately?<\/p>\n","protected":false},"author":1,"featured_media":0,"template":"","topic":[88,113,89],"difficulty":[7],"class_list":["post-27750","sharp_quiz","type-sharp_quiz","status-publish","hentry","topic-python","topic-python-core-abstract-base-classes-vs-protocols","topic-python-interview-questions","difficulty-medium"],"_links":{"self":[{"href":"https:\/\/sharpinterview.online\/index.php?rest_route=\/wp\/v2\/sharp_quiz\/27750","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=27750"}],"wp:term":[{"taxonomy":"topic","embeddable":true,"href":"https:\/\/sharpinterview.online\/index.php?rest_route=%2Fwp%2Fv2%2Ftopic&post=27750"},{"taxonomy":"difficulty","embeddable":true,"href":"https:\/\/sharpinterview.online\/index.php?rest_route=%2Fwp%2Fv2%2Fdifficulty&post=27750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}