PCPP2 Advanced OOP And Performance Practice Question
You are profiling your code and identify that a specific method is called millions of times. You decide to use a descriptor to optimize attribute access. What must the descriptor implement to intercept attribute assignment?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The __set__ method
A data descriptor is defined as an object that implements both __get__ and __set__ (or __delete__).
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The __call__ method
Why it's wrong here
__call__ makes an instance callable, not a descriptor.
- ✗
The __init__ method
Why it's wrong here
__init__ is for initialization, not attribute interception.
- ✗
Only the __get__ method
Why it's wrong here
Implementing only __get__ makes it a non-data descriptor.
- ✓
The __set__ method
Why this is correct
__set__ allows the descriptor to intercept and handle assignment.
About these practice questions
One of 194 original PCPP2 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed August 2026 · checked against the official Python Institute exam blueprint
This PCPP2 practice question is part of Courseiva's free Python Institute certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCPP2 exam.