我试图用Map来引用类函数,但是在格式化/排序时遇到了困难。我听说使用地图是过时的,所以我绝对开放的替代解决方案(循环?)预先感谢。Python问题 - 地图和类 - 初学者
lognames = [ "C:\Users\makker1\Desktop\logs\loga.txt",
"C:\Users\makker1\Desktop\logs\logb.txt",
"C:\Users\makker1\Desktop\logs\logc.txt" ]
class LogFile:
def __init__(self,filepath):
self.logfile = open(filepath, "r")
self.head = None
def __str__(self):
return "x=" + str(self.x) + "y="+str(self.y)
def readline (self):
if self.head != None:
self.head = self.logfile.readline()
def previewline (self):
if self.head == None:
self.head = self.logfile.readline()
def close (self):
self.logfile.close()
logs = map(LogFile(self,filepath).__init__(), lognames)
heads = map(lambda log: None, logs)
>>>
Traceback (most recent call last):
File "C:\Users\makker1\Desktop\mergesort-final.py", line 30, in <module>
logs = map(LogFile(self,filepath).__init__, lognames)
NameError: name 'self' is not defined
>>>
如果需要更多信息,请告诉我。我意识到有很多关于这个问题的帖子,并且通过其中许多没有用处。
如果您确实想在'map()'中显式使用'__init__',则需要关闭parens;您需要将*函数引用*传递给'map()',而不是调用该函数并将调用结果传递给'map()'。 – steveha
哦,这是开创性的。这种语言太挑剔了,我无法跟踪手续。非常感谢你! – Raj
@Raj - 关于'class'是一个函数的注释并没有超过这种情况。我只是发现它是思考实例创建的有用方法。快乐的蟒蛇。 –