Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

__init__() missing 1 required positional argument

I am trying to learn Python. This is a really simple code. All I am trying to do here is to call a class's constructor. Initialize some variables there and print that variable. But it is giving me an error. It is saying:

missing 1 required positional argument

Here is my code:

class DHT:     def __init__(self, data):         self.data['one'] = '1'         self.data['two'] = '2'         self.data['three'] = '3'     def showData(self):         print(self.data)  if __name__ == '__main__': DHT().showData() 
like image 979
odbhut.shei.chhele Avatar asked Nov 12 '13 12:11

odbhut.shei.chhele


1 Answers

You're receiving this error because you did not pass a data variable to the DHT constructor.

aIKid and Alexander's answers are nice but it wont work because you still have to initialize self.data in the class constructor like this:

class DHT:    def __init__(self, data=None):       if data is None:          data = {}       else:          self.data = data       self.data['one'] = '1'       self.data['two'] = '2'       self.data['three'] = '3'    def showData(self):       print(self.data) 

And then calling the method showData like this:

DHT().showData() 

Or like this:

DHT({'six':6,'seven':'7'}).showData() 

or like this:

# Build the class first dht = DHT({'six':6,'seven':'7'}) # The call whatever method you want (In our case only 1 method available) dht.showData() 
like image 76
Michael Avatar answered Oct 20 '22 17:10

Michael