-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
도전과제 질문
22.03.26 15:07 작성 조회수 138
0
안녕하세요 좋은 강의 감사드립니다.
강의 마지막 도전과제를 아래와같이 짜보았는데요.
inner_wrapper 내 print문에서 .format을 이용하여 출력 한 뒤, inner_wrapper을 리턴하도록 짜보았습니다.
print('<{0}>' + function(*args, **kwargs) + '</{0}>' .format(tag))
출력 결과를 보니, 앞 tag를 받아오지 못하고 그대로 출력되더라구요!
'<{0}>'안에 있는 {0}을 그대로 문자로 인식해서 출력된 것인가요~?
그렇다면, 왜 '{/0}'은 tag 변수를 받아와서 입력한 html 태그가 출력되는 것인지 궁금합니다.
추가로 print문 내에서 .format 함수를 사용하여 출력하려면 어떤식으로 수정되어야 하는지 궁금합니다.
다른 간단한 예제들을 찾아봤을 때, .format(변수)로 바로 받아올 수 있는걸 확인했는데, 제가 어떤 부분을 놓치고 있는건지 모르겠어요.
또, 출력 결과 None이 출력되는데 이 이유도 궁금합니다
가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
flask 깊은 이해를 위한 파이썬 중급 문법: 파이썬 데코레이터2
강의실 바로가기
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2022.03.27
안녕하세요.
본래 제시한 코드는 다음과 같은데요. format 이 마지막 '</{0}}>' 에만 붙어 있기 때문에, 해당 부분만 format 처리가 된 것으로 이해가 됩니다.
def mark_html(tag):
def outer_wrapper(function):
def inner_wrapper(*args, **kwargs):
return '<' + tag + '>' + function(*args, **kwargs) + '</' + tag + '>'
return inner_wrapper
return outer_wrapper
추가로 None 은 print_title() 함수가 return 값이 없기 때문에, 이를 None 으로 출력한 것이고, 그 위에 출력된 것은 print_title() 함수 내에서 출력한 것이라고 보시면 좋을 것 같습니다.
감사합니다.
답변 1