Python Class() takes no argument error. I am using Self

26,552

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__.

Share:
26,552

Related videos on Youtube

JOHONDAR
Author by

JOHONDAR

Updated on August 26, 2020

Comments

  • JOHONDAR
    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
      AChampion over 5 years
      You have misspelled __init__() (you currently have __intit__()).
    • k.wahome
      k.wahome over 5 years
      mispelled __init__
    • Ian Wesley
      Ian Wesley over 3 years
      For 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
    JOHONDAR over 5 years
    I’m going to go slap myself.
  • JOHONDAR
    JOHONDAR over 5 years
    I’m honestly not sure how I missed that, I was convinced I had something wrong with the parameters.
  • Hafiz H
    Hafiz H almost 3 years
    added int instead of init. My bad