Q74: What is __subclasshook__ and how do Virtual Subclasses work in ABCs?

Abstract Base Classes use __subclasshook__(cls, C) to implement Structural Type Checking (Duck Typing). Classes satisfying specified attribute requirements are recognized as valid subclasses via isinstance() without requiring explicit class inheritance.

Key Takeaways
  • Enables structural duck typing via isinstance() checks.
  • Recognizes virtual subclasses without explicit class inheritance.
Knowledge Check

Why does isinstance([], collections.abc.Iterable) evaluate to True even though List does not explicitly inherit ABC?