# Summary

Well done making it this far!
This might be the most confusing material of the whole course, so give yourself a pat on the back and don't be afraid of revisiting these concepts from time to time.
After going through this section, you should know that

 - you can use standard function syntax to enable your decorator to accept optional arguments;
 - decorators that accept arguments can be written in a very flexible way that allows users to use them without even calling the decorator factory; and
 - the built-in `callable` is very useful in distinguishing function arguments from other argument types.

Now, it is time for you to learn about the ways in which decorators can be used with classes!

---

If you have any feedback, [reach out to me at rodrigo@mathspp.com](mailto:rodrigo@mathspp.com).
