Python출력 결과어려움 · 30점#클래스#연산자 오버로딩#공유 변수

49. 클래스 변수와 인스턴스 변수의 가림

다음 Python 프로그램의 실행 결과를 쓰시오.

1class Counter:
2 total = 0
3 step = 1
4
5 def __init__(self, name):
6 self.name = name
7 self.value = 0
8 Counter.total += 1
9
10 def tick(self):
11 self.value += self.step
12 self.step += 1
13 return self
14
15 def __add__(self, other):
16 return self.value + other.value
17
18 def __str__(self):
19 return f"{self.name}({self.value})"
20
21
22a = Counter("A")
23b = Counter("B")
24a.tick().tick()
25Counter.step = 10
26b.tick()
27c = Counter("C")
28for obj in [a, b, c]:
29 print(obj, obj.step)
30print(a + b, Counter.total, Counter.step)

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.