Python - TypeError:(function)接受2个参数(给出3个)-但我只给出了2个



我正在解析患者访问列表(csv文件)。为了解决这个问题,我有一组自定义的类:

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)
        ...

我用的是csv。处理文件的DictReader;内置于PtController类中。它遍历,但要为第一个患者设置值,需要执行以下操作:

firstRow = self.dict.next()
self.initNewPt(self,firstRow)
    ...

错误:

TypeError: initNewPt() takes exactly 2 arguments (3 given)

如果我在调用initNewPt之前打印(firstRow),它将按照预期以字典形式打印行。

使用python2.7,这是我第一次使用对象。想法吗?

您不需要像在self.initNewPt(self,firstRow)中那样直接传递self,因为它由Python自动隐式传递。

当您调用self.initNewPt()时,您不应该将self作为参数传递。这是一个自动显示的隐含参数。

您需要在类方法中调用不带self参数的initNewPt:

self.initNewPt(firstRow)

相关内容

最新更新