title: Why does PyDev require an object in place of Self when calling a class method?
body: <p>So I am new to Python, but I have seen the recent popularity surround the language so I decided to give it a try and learn the language. I started by developing a simple ArrayList using the PyCharm IDE and I had absolutely no issues at all. Now I have decided to use PyDev plugin for Eclipse for a new project that is a Binary Search Tree. The problem I am running into with PyDev is that when I create a class method with the Self keyword being one of the parameters, PyDev actually seems to require me to place an object in the parameters of the method called. An example can be seen below:</p>
  
  <pre><code>def addNode(self, data):
      if(self.__root):
          self.__addNode(self, self.__root, data)
      else:
          self.__root = TreeNode(data)
  
      self.__size += 1
      self.printTree(self, self.__root)    
  
  def __addNode(self, node, data):
      if(data != None and node != None):
          if(data &lt;= node.getData()):
              if(node.getLeftChild() == None):
                  node.setLeft(TreeNode(data))
              else:
                  self.__addNode(node.getLeftChild, data)
          else:
              if(node.getRightChild() == None):
                  node.setRight(TreeNode(data))
              else:
                  self.__addNode(node.getRightChild(), data)
  </code></pre>
  
  <p>If I run the following code:</p>
  
  <pre><code>bst = BinarySearchTree
  bst.addNode(5)
  bst.addNode(4)
  bst.addNode(6)
  </code></pre>
  
  <p>I get the following output:</p>
  
  <pre><code>Traceback (most recent call last):
    File "C:\Users\------\workspace\BinarySearchTree\Main.py", line 9, in &lt;module&gt;
      bst.addNode(5)
  TypeError: addNode() missing 1 required positional argument: 'data'
  </code></pre>
  
  <p>but if I run this code instead:</p>
  
  <pre><code>bst = BinarySearchTree
  bst.addNode(bst,5)
  bst.addNode(bst,4)
  bst.addNode(bst,6)
  </code></pre>
  
  <p>I get the output I am looking for:</p>
  
  <pre><code>5 
  4 5 
  4 5 6 
  </code></pre>
  
  <p>So my question is why does it seem that PyDev requires an object in place of self when calling a class method when PyCharm did not give me this problem? I have both IDEs using the same interpreters.</p>