Sagnik Kundu Sagnik Kundu - 5 months ago 38
Python Question

"This constructor takes no arguments" error in __init__

I'm getting an error while running the following code:

class Person:
def _init_(self, name): = name

def hello(self):
print 'Initialising the object with its name ',

p = Person('Constructor')

The output is:

Traceback (most recent call last):
File "./", line 11, in <module>
p = Person('Harry')
TypeError: this constructor takes no arguments

What's the problem?


The method should be named __init__ to be a constructor, not _init_. (Note the double underscores.)

If you use single underscores, you merely create a method named _init_, and get a default constructor, which takes no arguments.