How often have you used the function range()
in Python? It’s often something you use early on as you learn about the for
loop…
But… did you know it’s not really a function, after all?!
Have a look at the docs or use help()
to check…
range
is a class. And therefore range()
creates an instance of the class as is always the case with a class.
So, my question is: “Does it matter?”
Technically, it does. A function is not a class – they’re different things
But in practice, what matters is how it behaves and not what it is!
This is a key principle in Python when thinking about data types. What they do and how they behave matters more that what they are!
So you can use range()
like a function, even though it’s not!
@CodingKurzgeschichten I wasn’t claiming in any way this is unique to Python. The point is that we use range as function – and that’s the way it was intended – but it’s not. It’s a class
@CodingKurzgeschichten This fits well within the concept of duck-typing which is true for some language but not others.
What matters here is not what it is but how it behaves, and this is a broader mindset in languages such as Python