1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Viết hàm trong Python

Connected

Bài tập

Trình tạo HTML

Bạn đang viết một script tạo HTML cho trang web theo thời gian thực. Hiện tại, bạn đã viết hai decorator dùng để thêm thẻ in đậm hoặc in nghiêng cho bất kỳ hàm nào trả về một chuỗi. Tuy nhiên, bạn nhận ra hai decorator này trông rất giống nhau. Thay vì viết hàng loạt decorator tương tự, bạn muốn tạo một decorator duy nhất, html(), có thể nhận bất kỳ cặp thẻ mở và thẻ đóng nào.

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

Hướng dẫn 1/4

undefined XP
  • 1

    Trả về decorator và hàm đã được trang trí từ đúng vị trí trong decorator html() mới.

  • 2

    Dùng decorator html() để bọc giá trị trả về của hello() bằng các chuỗi <b> và </b> (các thẻ HTML có nghĩa là "in đậm").

  • 3

    Dùng html() để bọc giá trị trả về của goodbye() bằng các chuỗi <i> và </i> (các thẻ HTML có nghĩa là "in nghiêng").

  • 4

    Dùng html() để bọc hello_goodbye() trong một DIV, tức là thêm các chuỗi thẻ <div> và </div> xung quanh một chuỗi.