Generator HTML
Anda sedang menulis skrip yang secara dinamis menghasilkan HTML untuk sebuah laman web. Sejauh ini, Anda telah menulis dua dekorator yang akan menambahkan tag tebal atau miring ke fungsi apa pun yang mengembalikan string. Namun, Anda menyadari bahwa kedua dekorator ini terlihat sangat mirip. Alih-alih menulis banyak dekorator lain yang serupa, Anda ingin membuat satu dekorator, html(), yang dapat menerima sepasang tag pembuka dan penutup apa pun.
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
Latihan ini merupakan bagian dari kursus
Menulis Function di Python
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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 ____