0

ファイルからデータを読み取り、辞書に入れるための2つの関数があります。

def read_input():
  f = open(r"D:\data.txt","r")
  g = {}
  for ln in f.readlines():
  ...g = ...
  f.close()
  return g

2番目の関数とほぼ同じです:

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) 

まだ小さくても問題なく動作gします...しかし、大きな入力ファイルでは、次のようなエラーが発生しました:

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

スワップread_input()reverse()て呼び出しreverse()た場合、合格しましたが、同じエラーが発生しますread_input

4

1 に答える 1

0

read_input()またはreverse()のいずれかに誤りがある可能性があります。
シナリオ
1returngが実行されるまでに、gはすでにNoneType
シナリオ2
になります。関数に欠陥があり、returngステートメントに到達できません。

いずれにせよ、本当にあなたを助けるために、私たちはあなたのコードのより多くの部分、特に関数の部分が必要になります。

于 2012-04-22T12:27:26.343 に答える