我在python中有以下代码:
class CreateMap:
def changeme(listOne, lisrTwo, listThree, listFour, listfive):
if __name__ == "__main__":
createMap = CreateMap()
createMap.changeme(["oneItem", "secondItem"],[],[],[],[])
它给了我以下错误:
TypeError: changeme() takes exactly 5 arguments (6 given)
据我了解,它将第一个列表识别为两个列表。我怎么能避免它?
答案 0 :(得分:2)
将您的功能定义为
def changeme(self,listOne, lisrTwo, listThree, listFour, listfive):
这将使函数可以访问类
之外的实例变量答案 1 :(得分:0)
它没有将第一个列表识别为两个列表。您必须使用self
作为函数中的第一个参数,因为显式优于隐式。推理已经详细给出了here。我会在这里引用一些。
首先,您更明显的是使用方法或实例属性而不是局部变量。读取self.x或self.meth()可以清楚地表明,即使您不了解类定义,也会使用实例变量或方法。