What is a metaclass and when is it justified?
PICTURE THIS: DJANGO MVT
Simple meaning
A metaclass is the class of a class
WHY — OOP instead of guessing?
Why interviewers care about OOP:
who only read docs from people who shipped.
and tied to Python work.
Name the idea, why it exists, then one short example.
End with when you use it and one common pitfall.
STEPS — What happens step by step?
Before you speak the answer, walk the interviewer through these steps:
- 1A metaclass is the
class of a class
- 2it runs when the
class body finishes and can alter attributes or register models.
- 3Django's ModelBase is the
classic example, collecting fields into _meta.
- 4Write a metaclass only
when class creation itself must be hooked
- 5descriptors or class decorators
suffice more often.
- 6Close
When you pick this over the alternative.
EXAMPLE — See it in action
Here's a short line you can speak, broken into clear beats:
Note: Adapt this scaffold to your own project — keep it under 60–90 seconds.
Key takeaway
A metaclass is the class of a class it runs when the class body finishes and can alter attributes or register models.