Python - TypeError: (function) takes exactly 2 arguments (3 given) - but I only gave 2!
<p>I'm parsing a list of patient visits (csv file). To deal with this, I have a custom set of classes:</p>

<pre><code>class Patient:
    def __init__(self,Rx,ID):
    ....

class PtController:
    def __init__(self,openCSVFile):
        self.dict=DictReader(openCSVFile)
        self.currentPt = ''
        ....

    def initNewPt(self,row):
        Rx = row['Prescription']
        PatientID = row['PatientID']
        self.currentPt = Patient(Rx,PatientID)
        ...
</code></pre>

<p>So, I'm using the csv.DictReader to process the file; built into the PtController class. It iterates through, but to set values for the first patient does the following:</p>

<pre><code>firstRow = self.dict.next()
self.initNewPt(self,firstRow)
    ...
</code></pre>

<p>The error:  </p>

<pre><code>TypeError: initNewPt() takes exactly 2 arguments (3 given)
</code></pre>

<p>If I print(firstRow) before calling initNewPt, it prints the row in dictionary form as expected. </p>

<p>Using python2.7, and this is my first time working with objects. Thoughts? </p>
