I’m getting an error while running the following code:
class Person:
def _init_(self, name):
self.name = name
def hello(self):
print 'Initialising the object with its name ', self.name
p = Person('Constructor')
p.hello()
The output is:
Traceback (most recent call last):
File "./class_init.py", 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.