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 adalah bagian dari kursus
Menulis Function di Python
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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 ____