1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python関数の書き方

Connected

演習

HTML ジェネレーター

あなたは、ウェブページ用の HTML をその場で生成するスクリプトを書いています。これまでに、文字列を返す関数に太字または斜体のタグを追加する 2 つのデコレータを作成しました。ただし、この 2 つのデコレータはとてもよく似ていることに気づきました。よく似たデコレータをたくさん書く代わりに、任意の開始タグと終了タグを受け取れる 1 つのデコレータ 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> タグを付けることで行います。