# 함수를 변수에 할당
def square(x):
return x * x
f = square
f(5)
# 함수를 파라미터로 사용
def square(x):
return x * x
def cube(x):
return x*x*x
def formula(method, argument_list):
return [method(value) for value in argument_list]
def print_msg(msg):
def printer():
print(msg)
printer()
print_msg("Hello, Python")
def print_msg(msg):
def printer():
print(msg)
return printer
another = print_msg("Hello, Python")
another()
def star(func):
def inner(*args, **kwargs):
print("*" * 30)
func(*args, **kwargs)
print("*" * 30)
return inner
def percent(func):
def inner(*args, **kwargs):
print("%" * 30)
func(*args, **kwargs)
print("%" * 30)
return inner
@star
@percent
def printer(msg):
print(msg)
printer("Hello")
def generate_power(exponent):
def wrapper(f):
def inner(*args):
result = f(*args)
return exponent**result
return inner
return wrapper
@generate_power(2)
def raise_two(n):
return n**2
print(raise_two(7))
# 562949953421312 = 2^49