Challenge: Basic Smores Recipe
Task
Swipe to start coding
When you run this script, it should output the layers of a smore in the correct order: cracker, chocolate, marshmallow, cracker.
This exercise demonstrates the concept of how decorators wrap functionality around a function in Python.
- In the wrapper function of the
crackers
decorator, you need to call the function being decorated (i.e.,func
). This should be done between the two print statements; - Ensure that the function func is called with any arguments and keyword arguments it might receive;
- Similar to the crackers decorator, the chocolate decorator should call the function it's decorating.
- The main task is to put decorators in right sequence. You must receive:
python91234~~cracker~~-roasted-------marshmallow-=chocolate=~~cracker~~
Solution
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def chocolate(func):
def wrapper(*args, **kwargs):
func(*args, **kwargs)
print(" =chocolate=")
return wrapper
def crackers(func):
def wrapper(*args, **kwargs):
print(" ~~cracker~~")
func(*args, **kwargs)
print(" ~~cracker~~")
return wrapper
@crackers
@chocolate
def basic_smores():
print("-roasted-------marshmallow-")
# Test the recipe
basic_smores()
Everything was clear?
Thanks for your feedback!
Section 5. Chapter 6
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def chocolate(___):
def wrapper(*args, **kwargs):
___(___, ___)
print(" =chocolate=")
return wrapper
def crackers(func):
def wrapper(*args, **kwargs):
print(" ~~cracker~~")
___(___, ___)
print(" ~~cracker~~")
return ___
@___
@___
def basic_smores():
print("-roasted-------marshmallow-")
# Test the recipe
basic_smores()
Ask AI
Ask anything or try one of the suggested questions to begin our chat