Useful decorators
In addition to the ones already mentioned in this chapter, Python comes bundled with a few other useful decorators. There are some that aren’t in the standard library (yet?).
Single dispatch – Polymorphism in Python
If you’ve used C++ or Java before, you’re probably used to having ad hoc polymorphism available—different functions being called depending on the argument types. Python being a dynamically typed language, most people would not expect the possibility of a single dispatch pattern. Python, however, is a language that is not only dynamically typed but also strongly typed, which means we can rely on the type we receive.
A dynamically typed language does not require strict type definitions. While a language such as C would require the following to declare an integer:
int some_integer = 123;
Python simply accepts that our value has a type:
some_integer = 123
Although with type hinting...