title: Simple class definition giving "missing 1 required positional argument" in ipython
body: <p>Here is my class file (called myclasses.py):</p>
  
  <pre><code>class wave:
      def __init__(self, name = "", xdelta = 1)
          self.name = name
          self.xdelta = xdelta
  
      def loadbinary(bpath):
          print(bpath)
  </code></pre>
  
  <p>For now I've stripped out other details (loading binary file code, etc.) to just this, and when I run the following I'm getting an error output: </p>
  
  <pre><code>import myclasses
  a = myclasses.wave
  a.loadbinary('TEST')
  </code></pre>
  
  <p>The Error:</p>
  
  <pre><code>TypeError: loadbinary() missing 1 required positional argument: 'bpath'
  </code></pre>
  
  <p>I've tried changing the loadbinary definition to "loadbinary(self, bpath)" but then it gives the same error. I've also tried replacing the "print" code with just "pass" to have it do nothing, but this still gives me the error. I've also tried running the following:</p>
  
  <pre><code>a.loadbinary(bpath='TEST')
  </code></pre>
  
  <p>...but this changes the error to read: loadbinary() missing 1 required positional argument: 'self'</p>
  
  <p>At this point, I'm not sure what is going on. The class definition is basic, and does not inherit from other classes, and from all I can tell is following the code in the python documentation for classes shown here: <a href="https://docs.python.org/2/tutorial/classes.html" rel="nofollow">https://docs.python.org/2/tutorial/classes.html</a></p>
  
  <p>I'm using Python 3.4.3, and this happens in iPython 3.1.0, running in PyCharm 4.5.1. If I run it in iPython 3.1.0 directly at the command prompt (OS X Terminal) I get the following error output:</p>
  
  <pre><code>unbound method loadbinary() must be called with wave instance as first argument (got str instance instead)
  </code></pre>