decorator 꾸미기 라는 뜻보다는 -> 함수를 인자로 받는 함수라고 이해하는게 편하다.
ex)
def deco(f):
print("deco")
return f
@deco
def double(num):
return num*2
실행하면 바로 deco라고 나온다. 즉 double이라는 함수를 선언하자 마자 바로 def deco가 실행되는 셈
이를
print(double(41))하면 82로 나온다.
def double(num):
return num*2
double = deco(double) #double 재할당되는셈,.
가끔 보면 건방지게
@deco(3)
def~~
이런식으로 되어 있는데 이때 deco는 클래스라는 것이고 여기서 (3)인자로 __init__이 작동하는 것임.