1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python으로 함수 작성하기

Connected

演習

HTML 생성기

웹페이지의 HTML을 즉석에서 생성하는 스크립트를 작성하고 있어요. 지금까지 문자열을 반환하는 어떤 함수에도 굵게(bold) 또는 기울임(italics) 태그를 추가하는 두 개의 데코레이터를 만들었습니다. 그런데 이 두 데코레이터가 매우 비슷해 보인다는 것을 눈치챘어요. 비슷한 데코레이터를 잔뜩 만드는 대신, 열기/닫기 태그 한 쌍을 받아서 적용할 수 있는 하나의 데코레이터 html()을 만들고자 합니다.

def bold(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    msg = func(*args, **kwargs)
    return '<b>{}</b>'.format(msg)
  return wrapper
def italics(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    msg = func(*args, **kwargs)
    return '<i>{}</i>'.format(msg)
  return wrapper

指示1 / 4

undefined XP
  • 1

    새 html() 데코레이터에서 올바른 위치에서 데코레이터와 데코레이팅된 함수를 각각 반환하세요.

  • 2

    html() 데코레이터를 사용해 hello()의 반환값을 문자열 <b>와 </b>(굵게를 의미하는 HTML 태그)로 감싸세요.

  • 3

    html()을 사용해 goodbye()의 반환값을 문자열 <i>와 </i>(기울임을 의미하는 HTML 태그)로 감싸세요.

  • 4

    html()을 사용해 hello_goodbye()를 DIV로 감싸세요. 문자열 주위를 <div>와 </div> 태그로 둘러주면 됩니다.