8

私はPythonに比較的慣れていませんが、IDLの使用経験が少しあります。IDLのstopコマンドと.resetコマンドに相当するコマンドがPythonにあるかどうか誰かが知っているかどうか疑問に思いました。

IDLスクリプトを実行している場合は、停止コマンドを入力します。基本的には、そこでスクリプトを停止し、スクリプトの途中でコマンドラインにアクセスできるようにします。したがって、stopコマンドの前に定義したすべての関数と変数にアクセスできます。これは、デバッグに非常に役立ちます。

.resetコマンドも非常に便利です。IDL環境をリセットします(すべての変数、関数などをクリアします)。そのセッションを閉じて新しいセッションを開いたかのようですが、IDLを終了して再起動する必要はありません。私が書いたスクリプトをデバッグしようとしている場合、最初から始めてIDL(または今はPython)をリセットする必要がない場合に便利なことがあります。以前にインポートしたモジュールをインポート解除できると、Pythonでも役立ちます。

これらの問題についての助けをいただければ幸いです。

乾杯

関連している

4

8 に答える 8

3

IPython (標準の python インタープリターよりもはるかに優れた REPL であることは別として) は、必要なことを実行できます。

from IPython.Shell import IPShellEmbed

start_shell = IPShellEmbed()

def times_2(x):
    return 2*x

a = 5

start_shell()

# now in IPython shell
# a -> 5
# times_2(a) -> 10

シェルで行った変更は、終了時にメインの python プロセスに送り返されないことに注意してください。IPython で a = 10 を設定した場合 (上記の例を使用)、メインの python プロセスでは a は 5 のままです。

編集: この手法を最初に見た IPython-user メーリング リストに投稿してください。

于 2010-02-08T12:12:32.687 に答える
1

%resetIPython シェル内から実行できます。

停止するには、前述のように pydebug ブレークポイントを追加するだけです

于 2014-08-28T20:00:19.057 に答える
1

この短いスクリプトのように、pdb を使用します。コマンドラインで実行すると、魔法のように PDB プロンプトが表示され、シングル ステップ、任意の式の評価などが可能になります。

#!/usr/bin/env  python
import pdb;

print 1
print 2
pdb.set_trace()
print 3
print 4
于 2010-05-23T12:54:39.207 に答える
1

stopcodeモジュールの使用と同等に聞こえます。.resetの無用な使用を除き、Python には同等のものはありませんdel

于 2010-01-29T15:46:57.150 に答える
0

Python コミュニティへようこそ! 私はまだ学んでいますが、Python は Interactive Data Language よりも優れています。

とにかく、コード モジュールの使用に関する Ignacio の回答は、少なくとも IDL のストップと並行する限り、必要なものを提供するように見えます。

もう 1 つの便利な方法は、Python の対話モードに入り、プログラムをインポートすることです。その後、関数などを実行することで対話できます (確かに、私はこれの専門家ではありません)。これを行う場合、プログラムを駆動するファイルに main() 関数が必要になります。たとえば、次のようなものがあります。

import sys
def main():
    # do stuff
    return(0)

if __name__ == '__main__':
    sys.exit(main())

代わりに:

# do stuff

これにより、プログラムを Python インタープリターにプルしたときにプログラムが実行されなくなります。詳細については、メイン関数に関する Guido の記事を参照してください。

于 2010-01-29T18:15:49.150 に答える
0

おそらく、これには Python デバッガーを使用したいだけでしょう。

于 2010-01-24T17:34:05.897 に答える