HTML Oluşturucu
Anlık olarak bir web sayfası için HTML üreten bir betik yazıyorsun. Şu ana kadar, bir dize döndüren herhangi bir fonksiyona kalın veya italik etiketleri ekleyen iki dekoratör yazdın. Ancak, bu iki dekoratörün birbirine çok benzediğini fark ediyorsun. Bir sürü benzer dekoratör yazmak yerine, açılış ve kapanış etiketlerinin herhangi bir çiftini alabilen tek bir dekoratör, html() oluşturmak istiyorsun.
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
Bu egzersiz, kursun bir parçasıdır
Python'da Fonksiyon Yazımı
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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 ____