我試圖用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'是一個函數的註釋並沒有超過這種情況。我只是發現它是思考實例創建的有用方法。快樂的蟒蛇。 –