Bird
0
0

Find the mistake in this code:

medium📝 Debug Q7 of 15
Python - Encapsulation and Data Protection
Find the mistake in this code:
class Student:
    def __init__(self, grade):
        self._grade = grade

    @property
    def grade(self):
        return self._grade

    @grade.setter
    def set_grade(self, value):
        if value < 0 or value > 100:
            raise ValueError('Invalid grade')
        self._grade = value
AMissing return statement in setter
BIncorrect attribute name in setter
CProperty decorator is missing
DSetter method name does not match property name
Step-by-Step Solution
Solution:
  1. Step 1: Check setter method name

    Setter must have the same name as property: 'grade', not 'set_grade'.
  2. Step 2: Understand decorator binding

    @grade.setter binds to method named 'grade', so mismatch causes error.
  3. Final Answer:

    Setter method name does not match property name -> Option D
  4. Quick Check:

    Setter name = property name for @property.setter [OK]
Quick Trick: Setter method name must match property name exactly [OK]
Common Mistakes:
  • Naming setter differently than property
  • Expecting return in setter
  • Confusing attribute names

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Python Quizzes