Login and get coding
After creating our Decorators and Context Managers learning path we realized we did not have a beginner decorator Bite, so here it is!
sandwichdecorator which takes a function and prints === Upper bread slice === (defined in
UPPER_SLICE) and === Lower bread slice === (defined in
LOWER_SLICE) before and after calling the passed in function (
And voilà applying this decorator to
add_ingredientsyou have your sandwich (see also the tests):>>> from sandwich import sandwich >>> @sandwich ... def add_ingredients(ingredients): ... print(' / '.join(ingredients)) ... >>> ingredients = ['bacon', 'lettuce', 'tomato'] >>> add_ingredients(ingredients) === Upper bread slice === bacon / lettuce / tomato === Lower bread slice ===
This is probably the easiest way to demo a decorator. Even so decorators can be confusing when you start using them so here is an article we wrote some time ago: Learning Python Decorators by Example.