300x250
반응형
데코레이터
@app.route("/")와 같은 데코레이터를 직접 만들자
def decorator():
dec wrapper():
...
return wrapper
기본적으로 이런 형식
이렇게 만들어놓고 @decorator 처럼 앞에 @ 붙여서 함수 위에다 쓰면 됨
예제
# 데코레이터 정의
def mydeco(func):
def a():
print('func start')
func()
print('func end')
return a
# 함수에 적용
@mydeco
def myfunc():
print('i am myfucn')
이제 myfunc()를 호출하면 아래처럼 나온다
return
리턴해주는 함수는 이렇게
(사실 똑같음... 그냥 return 한번 더해주는것 뿐)
def mydeco(infunc):
def a():
return f'{infunc()} decorated'
return a
@mydeco
def myfunc():
return "i am myfunc"
이러고 print(myfunc()) 해주면 아래처럼 나옴
* 인자 넣어서 만들기
@mydeco
def myfunc(name)):
return f"i am {name}"
위와 같이 파라메터가 들어오는 함수의 경우에는 어떻게 해야 할까?
클로저가 어쩌고 하던데 이부분은 공부를 좀 더 해봐야겠다.
300x250
반응형
'IT > 파이썬' 카테고리의 다른 글
flask db migrate시 에러 ValueError: not enough values to unpack (expected 2, got 1) (0) | 2021.05.31 |
---|---|
[플라스크] ModuleNotFoundError: No module named 'flask_wtf' 에러 (0) | 2021.05.28 |
플라스크에서 ORM 사용하기 5 - db에 데이터 넣기 (0) | 2021.05.24 |
플라스크에서 ORM 사용하기 4 - 라우팅 (0) | 2021.05.24 |
플라스크에서 ORM 사용하기 3 - db에서 데이터 가져오기 (0) | 2021.05.24 |