'method' object is not subscriptable. Don't know what's wrong

I'm writing some code to create an unsorted list but whenever I try to insert a list using the insert method I get the 'method' object is not subscriptable error. Not sure how to fix it. Thanks.

class UnsortedList: def __init__(self): self.theList = list() def __getitem__(self, i): print(self.theList[i]) def insert(self, lst): for x in lst: try: self.theList.append(float(x)) except: print("oops") myList = UnsortedList() myList.insert[1, 2, 3] 

2 Answers

You need to use parentheses: myList.insert([1, 2, 3]). When you leave out the parentheses, python thinks you are trying to access myList.insert at position 1, 2, 3, because that's what brackets are used for when they are right next to a variable.

Try this:

class UnsortedList: def __init__(self): self.theList = list() def __getitem__(self, i): print(self.theList[i]) def insert(self, lst): for x in lst: try: self.theList.append(float(x)) except: print("oops") myList = UnsortedList() myList.insert([1, 2, 3]) 

This will work. While making object of class your forgot to put parenthesis.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like