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
第二の機能とほぼ同じ:
g = read_input()
g_rev = reverse()
は(小さな入力ファイルに対して)小さなg
& g_rev
のために正常に動作します:私はそのようなコードを持っていた後
def reverse():
f = open(r"D:\data.txt","r")
g = {}
for ln in f.readlines():
....
f.close()
return g
。
:私はこれらの行を追加し、read_input
と
reverse
まだ
g
小さな罰金ウィルに動作します...しかし、私は、このようなエラーを得た大きな入力ファイルで
if __name__=="__main__":
sys.setrecursionlimit(100000)
threading.stack_size(67108864*3)
thread = threading.Thread(target=main1)
thread.start()
thread.join(0)
main1
の両方を含むので、その後、私は深い再帰を行う必要があります
g = reverse()
TypeError: 'NoneType' object is not callable.
私はread_input()
とreverse()
を交換し、それが渡されたreverse()
を呼び出しますが、read_input
'...'ビットに 'reverse =(something)'が含まれていますか? – geoffspear
いいえ、ちょうどinit辞書にデータを読み込んでいます。両方の関数は一度だけ呼び出されます – tata
なぜf.readlines()の ''のために ''をやっていますか: ''?リストを作成するのではなく、反復する '' for f: ''に対して ''を実行するだけです。もっと効率的。 –