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.

Sign in to participate in the conversation
CleverLibre Social

CleverLibre Social is an inclusive social instance for open discussion, learning, and community.
All cultures welcome.
Hate speech and harassment strictly forbidden.