コードの特定の要素の実行順序に関して、Python に C と同様の問題があるかどうか疑問に思っていました。
たとえば、C では、ある変数が別の変数の前に初期化されることが保証されていない場合があることを知っています。または、あるコード行が別のコード行の上にあるという理由だけで、それがその下のすべての行より前に実装されるとは限りません。
Pythonでも同じですか?たとえば、データのファイルを開き、データを読み取り、ファイルを閉じてから、ファイルを閉じた後の行が実行される前に、ファイルが閉じられていることを確認できますか??
私が尋ねる理由は、データの大きなファイル (1.6GB) を読み込もうとしていて、データに対して行う作業に固有のこの python モジュールを使用しようとしているためです。このモジュールを実行すると、次のエラー メッセージが表示されます。
File "/glast01/software/ScienceTools/ScienceTools-v9r15p2-SL4/sane/v3r18p1/python/GtApp.py", line 57, in run
input, output = self.runWithOutput(print_command)
File "/glast01/software/ScienceTools/ScienceTools-v9r15p2-SL4/sane/v3r18p1/python/GtApp.py", line 77, in runWithOutput
return os.popen4(self.command(print_command))
File "/Home/eud/jmcohen/.local/lib/python2.5/os.py", line 690, in popen4
stdout, stdin = popen2.popen4(cmd, bufsize)
File "/Home/eud/jmcohen/.local/lib/python2.5/popen2.py", line 199, in popen4
inst = Popen4(cmd, bufsize)
File "/Home/eud/jmcohen/.local/lib/python2.5/popen2.py", line 125, in __init__
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
>>>
Exception exceptions.AttributeError: AttributeError("Popen4 instance has no attribute 'pid'",) in <bound method Popen4.__del__ of <popen2.Popen4 instance at 0x9ee6fac>> ignored
読み込んだデータのサイズに関連していると思います(17608310行と22列あります)。データを読み込んだ直後に開いたファイルを閉じると、おそらくこれが役立つと思いましたが、そうではありませんでした。これにより、コード行が実行される順序について考えるようになったので、私の質問です。
ありがとう