Original article was published by Bex T. on Artificial Intelligence on Medium
Understanding the Type System of Python
All programming languages fall into one of these two major Type Systems. Our beloved Python uses dynamic typing. In dynamically typed languages, variables are allowed to change their type as your script/program develops and the interpreter of the language does the type checking as the code runs.
Yes, dynamic languages offer more flexibility and more control over our code. But there are cases where programmers want some of their blocks of code to be static. If your project scope is small and only written for yourself, you often do not have to worry about type hinting.
However, if you write your script for others to read, or say you are developing a package to eventually upload it to PyPi, type hinting can hugely boost the readability of your code as well as make it less error-prone and easy to debug.
Let’s explore a use-case:
Ok, when I first saw it, that was the least Pythonic piece of code I have ever seen.
In the function header,
bool after the colons specify the types of arguments that the function accepts. If the function receives objects other than strings, it either raises
TypeError depending on the object. This is particularly useful because we often use packages written by other people and don’t see the function header directly before calling them.
Today’s modern IDEs, for instance, PyCharm has already a type checker built into which displays helpful warnings when you are typing:
-> after closing brackets specifies the type of the result. Setting default values is also easy, just put the equal sign after the type annotation (that’s what they are called) and you are good to go.
If you have noticed, it is also possible to hint variable types as well. Though it is very rare, having the knowledge never hurts!