Python provides many built-in functions and methods, such as
sum()
,
upper()
,
append()
,
float()
,
int()
, etc. Some of these functions or methods accept arguments, and some do not.
To call or use a built-in function, we write its name followed by the parenthesis. For example
float()
. But if we use square brackets
[]
instead of parenthesis, we get the
TypeError: ‘builtin_function_or_method’ object is not subscriptable
error in Python.
This Python guide will walk through this error, its causes, and a way to solve it. We will also discuss some examples to understand this error better.
Python Error - TypeError: ‘builtin_function_or_method’ object is not subscriptable
It is possible to iterate or subscript over iterable objects. Common subscriptable objects include lists, strings, and dictionaries. With indexing, you can access the individual values in these objects. All items in an iterable object have index values.
To access the elements from subscriptable objects, we write the object variable name followed by the square brackets
[]
and the element's index or key value inside the bracket.
Example 1
Consider a list of weekdays.
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
print(weekdays[3])
Output
Thursday
The above program returns
Thursday
as the output. We have retrieved the item at index position 3. As our list was subscriptable, we were able to retrieve the item from the list using the index value enclosed in square brackets.
Example 2
>>> string = "Hello World"
>>> string[0]
'H'
However, built-in methods or functions are not subscriptable like a
list in Python
. The reason is they do not return a list of objects that can be accessed using indexing. So, when you try to access any built-in function using square brackets, you receive the error
TypeError: ‘builtin_function_or_method’ object is not subscriptable
. The Python interpreter interprets any value inside a square bracket as a subscriptable.
The error has two parts - Error Type and Error Message .
-
Error Type (
TypeError
): TypeError raises in Python when we try to call a function or use an operation with some incorrect type. -
Error Message (
‘builtin_function_or_method’ object is not subscriptable
): This is the actual error message, which says using the square brackets[]
to call the function or method instead of parenthesis()
is syntactically incorrect.
Common Example Scenario
Let's use the square bracket
[]
on the built-in Python function
sum
used to calculate the sum of container objects like lists, tuples, and dictionaries.
bill = [1,2,3,4,5]
# error (using a square bracket to call a function)
total = sum[bill]
print(total)
Output
Traceback (most recent call last):
File "main.py", line 4, in <module>
total = sum[bill]
TypeError: 'builtin_function_or_method' object is not subscriptable
Break the Code
If we look at the error statement, we can observe that we received the error at line 4, where we computed the total sum of our list object
bill
using the Python in-built function
sum
.
But, to call the
sum
function, we used the square bracket
[]
instead of
()
parenthesis. Hence, the Python interpreter misunderstood the function as a subscriptable object and threw the error.
Solution
The solution to the problem is straightforward. Whenever you see the
'builtin_function_or_method' object is not subscriptable
error in your Python program, you must visit the error line code and replace the mistyped
[]
bracket after the function with the parenthesis
()
.
Here is the correct version of the above code:
bill = [1,2,3,4,5]
# solved (using parenthesis bracket to call a function)
total = sum(bill)
print(total)
Output
15
Final Thoughts!
This was all about
TypeError: ‘builtin_function_or_method’ object is not subscriptable
error. It occurs when we use the square bracket
[]
to call a Python inbuilt function instead of using parenthesis
()
. It is very easy to resolve this error. Simply go to the error line code and replace square brackets
[]
with parenthesis
()
.
If you still get this error in your Python program, please share your code in the comment section. We will try to help you with debugging.
People are also reading:
- Python Google Custom Search Engine API
- Python valueerror: too many values to unpack (expected 2) Solution
- Automated Browser Testing in Python
- Python local variable referenced before assignment Solution
- Python readline() Method
- Python indexerror: list assignment index out of range Solution
- Install Python package using Jupyter Notebook
- Python TypeError: ‘float’ object is not subscriptable Solution
- Starting Python Coding on a MacBook
- Python NameError name is not defined Solution
Leave a Comment on this Post