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!

@s_gruppetta Interesting. I'm going to have to go back to my Python book and see what it says about this. I'm fairly sure it just presents it as a command to be used in a certain way.

@andrewhoyer it “behaves” like a function. In many ways, that’s all that matters!

@s_gruppetta Thanks for sharing! I think this is what APIs of any kind are for - serve the purpose and be easy to understand: no matter if that's a built-in library, some additional package or even REST/SOAP. Clearly, a good example that we should focus on building a good interfaces first.

QOTO: Question Others to Teach Ourselves