Question

I know this title look familiar to some old questions, but i've looked at every single one of them, none of them solves. And here is my codes:

class Island (object):E,W,R,P
  def __init__(self, x, y):
    self.init_animals(y)
  def init_animals(y):
    pass

isle = Island(x,y)

However, i got the following error:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in __init__
TypeError: init_animals() takes 1 positional arguments but 2 were given

Please tell me if i got any mistakes, im so confused by this. Best regards

Was it helpful?

Solution

You need to add self as the first argument of init_animals:

def init_animals(self, y):
    pass

self (similar to this in Java) is the instance of the class. Every time you call a method within the class, self is sent to that method as the first argument.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top