0
我有2個函數用於從文件讀取數據並將其放到字典中。「TypeError:'NoneType'對象不可調用」有時會出現,有時 - 不是
def read_input():
f = open(r"D:\data.txt","r")
g = {}
for ln in f.readlines():
...g = ...
f.close()
return g
幾乎與第二個功能是相同的:
def reverse():
f = open(r"D:\data.txt","r")
g = {}
for ln in f.readlines():
....
f.close()
return g
後,我有這樣的代碼:
g = read_input()
g_rev = reverse()
工作正常,小g
& g_rev
(小型輸入文件)。從那以後,我需要做的深層遞歸的,所以我說這行,其中包括兩個read_input
和reverse
到main1
if __name__=="__main__":
sys.setrecursionlimit(100000)
threading.stack_size(67108864*3)
thread = threading.Thread(target=main1)
thread.start()
thread.join(0)
仍然能正常WIL小g
......但隨着大輸入文件,我得到了這樣的錯誤:
g = reverse()
TypeError: 'NoneType' object is not callable.
如果我換read_input()
和reverse()
並調用reverse()
它通過了,但對於read_input
'...'位是否包含'reverse =(something)'某處? – geoffspear 2012-04-19 20:28:17
不,只是讀取數據到init字典。這兩個函數只被調用一次 – tata 2012-04-19 20:30:20
爲什麼在f.readlines()中爲ln做'':?你可以在''中爲'ln'做'',它迭代,而不是創建一個列表。更高效。 – 2012-04-19 20:31:57