I was under the impression that something like str(5) is calling the str function on the integer 5. But when you type str into the interpreter:
>>> str
<class 'str'>
So str is actually a class, which makes code like if type(a) is str make more sense. But then why is str listed under "Built-in Functions" in the docs? Is this just a simplification?