| 176 | |
| 177 | print("Example 13") |
| 178 | class DictGrade: |
| 179 | def __init__(self): |
| 180 | self._values = {} |
| 181 | |
| 182 | def __get__(self, instance, instance_type): |
| 183 | if instance is None: |
| 184 | return self |
| 185 | return self._values.get(instance, 0) |
| 186 | |
| 187 | def __set__(self, instance, value): |
| 188 | if not (0 <= value <= 100): |
| 189 | raise ValueError("Grade must be between 0 and 100") |
| 190 | self._values[instance] = value |
| 191 | |
| 192 | class DictExam: |
| 193 | math_grade = DictGrade() |