Python Class() takes no argument error. I am using Self
Solution 1
You have no __init__
method that takes the instance arguments as you have mispelled it for def __intit__(self, make, model, year):
. As a result, when instantiating my_new_car = Car('Chevy', 'sonic', 2015)
, you are passing arguments to Car that does not expect them
Solution 2
Simple typo:
def __intit__(self, make, model, year):
should be __init__
.
Related videos on Youtube
JOHONDAR
Updated on August 26, 2020Comments
-
JOHONDAR over 3 years
I've been going through both Stack and the internet at large but I'm not able to find the issue I'm dealing with. I'm new to Python and I'm learning how classes work. I've written up a very simple class and function to print it to the console.
class Car(): def __intit__(self, make, model, year): self.make = make self.model = model self.year = year def get_descriptive_name(self): long_name = str(self.year), + " " + self.make + " " + self.model return long_name.title() my_new_car = Car('Chevy', 'sonic', 2015) print(my_new_car.get_descriptive_name())
But when I run the compiler it returns the error Car() takes no arguments. I'm aware of the need for self parameter and I've included them in all the areas I can think of putting one. I've done a lot of experimentation on my end and nothing I try changes it. I was hoping someone could explain this to me or might know of a relevant thread?
Thanks in advance for any help!
-
AChampion over 5 yearsYou have misspelled
__init__()
(you currently have__intit__()
). -
k.wahome over 5 yearsmispelled
__init__
-
Ian Wesley over 3 yearsFor the record this question was totally reproducible. I had the same error, and this was the first stack overflow answer in google. Saved me a ton of time. To be fair though I was missing the second I rather than adding an extra t. Thanks for the question!!!
-
-
JOHONDAR over 5 yearsI’m going to go slap myself.
-
JOHONDAR over 5 yearsI’m honestly not sure how I missed that, I was convinced I had something wrong with the parameters.
-
Hafiz H almost 3 yearsadded int instead of init. My bad