Уважаемые коллеги,
встал в тупик, похоже, чего-то принципиального не понимаю в работе декораторов (прошу не смеяться :D)
Вот простая
функция, которая возвращает текстовую строку:
def pure_text():
"""return a text string without formatting"""
return "just a text string"
Вот
декоратор, который должен первую букву делать заглавной, а остальные - строчными
def capitalize(fn):
"""capitalize the output of the given function
"""
def wrapper():
result = fn()
return capitalize(result)
return wrapper
Вот код целиком:def capitalize(fn):
"""capitalize the putput of the given function
"""
def wrapper():
result = fn()
return capitalize(result)
return wrapper
@capitalize
def pure_text():
"""return a text string without formatting"""
return "just a text string"
print pure_text()
Почему вместо ожидаемого
Just a text string (c большой буквы) выводится
<function wrapper at 0x7f99879636e0>
?
Что нужно исправить, чтобы в декораторе модифицировалась строка, возвращаемая декорируемой функцией?
Спасибо заранее!