ÎncepețiÎncepe gratuit

Generator HTML

Scrii un script care generează HTML pentru o pagină web din mers. Până acum, ai scris doi decoratori care adaugă taguri de bold sau italice oricărei funcții ce returnează un string. Observi însă că acești doi decoratori arată foarte similar. În loc să scrii o serie de alți decoratori asemănători, vrei să creezi un singur decorator, html(), care să poată primi orice pereche de taguri de deschidere și de închidere.

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

Acest exercițiu face parte din cursul

Scrierea funcțiilor în Python

Vezi cursul

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

def html(open_tag, close_tag):
  def decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
      msg = func(*args, **kwargs)
      return '{}{}{}'.format(open_tag, msg, close_tag)
    # Return the decorated function
    return ____
  # Return the decorator
  return ____
Editează și rulează codul