#100DaysOfCode in Python Transcripts
Chapter: Days 22-24: Decorators
Lecture: More abstraction: stacking decorators
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Next up, let's talk about how you can stack decorators. And I've found an image of Russian dolls, which might clarify how this "nesting" works.
0:13
So let's define another decorator that shows the args and keyword args being passed in, and we're going to stack that
0:20
together with the timeit decorator.
0:38
Alright, let's modify generate report from the last video to take some arguments. And now, let me show you how you can stack
0:50
the two decorators we've defined so far, and note that the order matters. So I put timeit as the outer decorator,
0:58
because I want to time the whole operation, including the use of the print args decorator. Let's now call it, but first let's
1:07
give it some parameters, so let me quickly find a dictionary of some keyword arguments. And now, all should come together,
1:19
because when I call generate report with some args and some keyword args, look at that. We see two decorators in action.
1:29
First a timer, starting the timer, doing stuff, ending the timer, and printing how long it took, and then we see the inner decorator,
1:36
print args, printing the args and the keyword args. And here you see that decorators can become pretty powerful, because each decorator is doing
1:45
a specific task, which can be applied to multiple functions, yet it's all abstracted in their definition.
1:52
And, yes, this is how you can stack decorators.