정보처리기사 실기PythonPython - 클래스와 매직 메서드난이도 5SHORT_ANSWER

정보처리기사 실기 Python - 클래스와 매직 메서드 기출문제 #352

문제

다음 Python 코드의 실행 결과를 쓰시오.

Python
class Prop: def __init__(self, value=0): self.value = value def __get__(self, obj, objtype=None): if obj is None: return self.value * 10 return getattr(obj, '_value', self.value) def __set__(self, obj, value): obj._value = value * 2 class Test: x = Prop(5) t1 = Test() t2 = Test() t1.x = 3 print(Test.x) print(t1.x) print(t2.x) t2.x = 7 print(t1.x) print(t2.x)

정답

50 6 5 6 14

5065614

해설

디스크립터 Prop의 동작: __get__에서 obj가 None(클래스 접근)이면 value*10을 반환하므로 Test.x는 50이다. 인스턴스 접근 시 _value 속성이 있으면 그 값을, 없으면 기본값을 반환한다. __set__은 설정값의 2배를 _value에 저장한다. t1.x=3 후 t1._value=6이므로 t1.x는 6, t2는 아직 _value가 없어 기본값 5를 반환. t2.x=7 후 t2._value=14가 되어 t2.x는 14, t1.x는 여전히 6이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.