← 문제 목록
고급
Python
100P
late binding 데코레이터 이슈
다음 코드에서 의도와 다른 동작이 발생하는 이유는?
PYTHON
def make_multiplier(n):
def decorator(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs) * n
return wrapper
return decorator
multipliers = {}
for i in range(1, 4):
@make_multiplier(i)
def add_one(x):
return x + 1
multipliers[i] = add_one
print(multipliers[1](5)) # 기대: 6
print(multipliers[2](5)) # 기대: 12
print(multipliers[3](5)) # 기대: 18
0명 풀이 · 정답률 0%