“TypeError:'NoneType'对象不可调用”有时会出现,有时 - 不是

时间:2012-04-19 20:25:18

标签: python recursion stack-overflow

我有2个函数用于从文件中读取数据并将其放入字典中。

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_inputreverse包括在main1

if __name__=="__main__":
  sys.setrecursionlimit(100000)
  threading.stack_size(67108864*3)    
  thread = threading.Thread(target=main1)
  thread.start()
  thread.join(0) 

仍然可以正常小g ...但是对于大输入文件我得到了这样的错误:

g = reverse()
 TypeError: 'NoneType' object is not callable. 

如果我交换read_input()reverse()并致电reverse()它已通过,但read_input

的错误相同

1 个答案:

答案 0 :(得分:0)

read_input()或reverse()可能有错误 情景1
到执行返回g时,g已经是NoneType
情景2
这些函数存在缺陷,导致它们无法访问return g语句。

无论哪种方式,为了真正帮助您,我们需要更多的代码,尤其是函数部分。