我获得了以下python代码,其中在单击按钮时调用printSaved (使用wx库和Python2.7.2)。但是当这种情况发生时,我得到了一个非常奇怪的错误
Traceback (most recent call last):
File "./program.py", line 135, in printSaved
s = self.readSaved()
TypeError: readSaved() takes no arguments (1 given)以下是代码
def readSaved():
f = codecs.open((os.getenv('HOME') +'/Dokument/savefile.txt') ,'r','utf-8')
l = f.readlines()
f.close()
return l
def printSaved(self,event):
s = self.readSaved()
for l in s:
print l我通过向readSaved(somethingUseless)添加一个参数修复了这个问题,一切都很正常。我的问题是什么是传递给readSaved的,是如何/为什么传递的?这和这件事有关系吗?
发布于 2012-03-13 21:46:40
因为它是一个方法--不管怎么说,你都是把它作为一个方法来调用的--你必须至少有一个self作为参数。当函数作为方法调用时,调用该方法所通过的对象将作为第一个参数传递给该函数。
https://stackoverflow.com/questions/9685195
复制相似问题