ν¨μλ₯Ό λ°μ λͺ λ Ήμ μΆκ°ν λ€ μ΄λ₯Ό λ€μ ν¨μμ ννλ‘ λ°ννλ ν¨μ
def out_func(func): # κΈ°λ₯μ μΆκ°ν ν¨μλ₯Ό μΈμλ‘ λ°μ
def inner_func(*args, **kwargs):
return func(*args, **kwargs)
return inner_func
def decorator(func):
def wrapper(*args, **kwargs):
print('μ μ²λ¦¬')
print(func(*args, **kwargs))
print('νμ²λ¦¬')
return wrapper
@decorator
def example():
return 'ν¨μ'
example()
# result
μ μ²λ¦¬
ν¨μ
νμ²λ¦¬
class Decorator:
def __init__(self, function):
self.function = function
def __call__(self, *args, **kwargs):
return self.function(*args, **kwargs)
class Decorator:
def __init__(self, function):
self.function = function
def __call__(self, *args, **kwargs):
print('μ μ²λ¦¬')
print(self.function(*args, **kwargs))
print('νμ²λ¦¬')
@Decorator
def example():
return 'ν΄λμ€'
example()
# result
μ μ²λ¦¬
ν΄λμ€
νμ²λ¦¬