Python Forum

Full Version: Why built in functions are defined as class?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
In python official documentation there is a list of built in functions. But if I click on some of them, instead of taking me to a function definition, it takes me to a class definition. But if they are classes, then why they are under function definition?

For example, if I click on slice() function, it takes me to class slice
Quote:Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.

The title is missleading. Some are not functions but types. Only that they are lowercase.
To see if a builtin is a class or a function that just type the name of it without parenthesis.
look at it this way
abs is a class of type builtin_function_or_method, abs(14) is an instance of class abs with attribute 14
>>> type(abs)
<class 'builtin_function_or_method'>

>>>type(abs(14)) # returns type of instance of abs (which is of class int)
<class 'int'>
(Oct-05-2021, 02:42 AM)Larz60+ Wrote: [ -> ]look at it this way
abs is a class of type builtin_function_or_method, abs(14) is an instance of class abs with attribute 14
>>> type(abs)
<class 'builtin_function_or_method'>

>>>type(abs(14)) # returns type of instance of abs (which is of class int)
<class 'int'>

No, no! That's totally wrong!! abs is not a class. The type of abs is a class.

Anyhow, to see if a builtin is a class or not, you dont need to use type. Just write the name of the builtin and press enter.

>>> bytearray
<class 'bytearray'>
so bytearray is a class

>>> abs
<built-in function abs>
so abs is a builtin function

Wall Wall Wall Wall

Big Grin Big Grin Big Grin Big Grin
(Oct-05-2021, 02:42 AM)Larz60+ Wrote: [ -> ]>>>type(abs(14)) # returns type of instance of abs (which is of class int)

From abs() documentation, abs(x) Return the absolute value of a number. I think it is not correct to say instance of abs as abs function returns a number, or int in this case.
They should be called built-in callables instead of built-in functions.