Python: Which practice avoids a common mistake with Abstract Base Classes vs Protocols?

Difficulty:

Medium

Questions:

1

Time Limit:

2 minutes

Passing Score:

100%

Question

Which practice avoids a common mistake with Abstract Base Classes vs Protocols?

  1. Ignore the Abstract Base Classes vs Protocols issue and rely on team discipline instead of clearer APIs or invariants.
  2. Silence the Abstract Base Classes vs Protocols problem by using broad catches, hidden globals, or extra shared mutable state.
  3. Do not introduce an abstract base class just to satisfy a type checker if the real design only depends on behavior, not family membership.
  4. Prefer the version of Abstract Base Classes vs Protocols that makes behavior less predictable as long as the code still runs.

Hint

Look for the option that protects correctness instead of hiding the problem.

Answer and rationale

Correct answer: C. Do not introduce an abstract base class just to satisfy a type checker if the real design only depends on behavior, not family membership.

Do not introduce an abstract base class just to satisfy a type checker if the real design only depends on behavior, not family membership. This is a common failure mode in real Python code and a frequent interview follow-up.

Track: Python