Python으로 함수 작성하기
Shayne Miel
Software Architect @ Duo Security





@double_args def multiply(a, b): return a * bmultiply(1, 5)
20
def multiply(a, b): return a * bdef double_args(func): return funcnew_multiply = double_args(multiply)new_multiply(1, 5)
5
multiply(1, 5)
5
def multiply(a, b): return a * bdef double_args(func):# 수정 가능한 새 함수를 정의합니다 def wrapper(a, b):# 일단 원본 함수를 그대로 호출합니다 return func(a, b)# 새 함수를 반환합니다 return wrappernew_multiply = double_args(multiply)new_multiply(1, 5)
5
def multiply(a, b): return a * bdef double_args(func): def wrapper(a, b):# 전달된 함수를 호출하되, 각 인수를 두 배로 만듭니다 return func(a * 2, b * 2)return wrappernew_multiply = double_args(multiply)new_multiply(1, 5)
20
def multiply(a, b): return a * bdef double_args(func): def wrapper(a, b): return func(a * 2, b * 2) return wrappermultiply = double_args(multiply)multiply(1, 5)
20
multiply.__closure__[0].cell_contents
<function multiply at 0x7f0060c9e620>
def double_args(func): def wrapper(a, b): return func(a * 2, b * 2) return wrapperdef multiply(a, b): return a * b multiply = double_args(multiply) multiply(1, 5)
20
def double_args(func): def wrapper(a, b): return func(a * 2, b * 2) return wrapper@double_args def multiply(a, b): return a * b multiply(1, 5)
20
Python으로 함수 작성하기