30

私はPythonが初めてです。

要するに:

スクリプト作成中、テキスト エディターからコマンド ライン Python インタープリターにコード行をコピーして貼り付けることで、プログラムの小さな部分を継続的にテストしたいと考えています。これらの行がインデントされている場合 (たとえば、関数の一部であるため)、インタープリターがインデントを無視するかチェックしないようにして、コピー/貼り付けの前にインデントを解除する必要がないようにします。それは可能ですか?

詳細は次のとおりです。

ここに私が意味することの簡単な例があります:

テキスト エディターに、現在開発中の次のモジュールが含まれているとします。

def MyFunc(arg):
    .../...
    if arg == 1:
        print "This is my function called with value 1."
        print "Done."
    else:
        print "This is my function called with value other than 1."
        print "Nothing else to say."
    .../...

printそして、モジュールの少なくともその部分が期待どおりに動作しているかどうかをすばやく確認するために、最初の 2 行 (上記のコードの 4 行目と 5 行目) をすぐにテストしたいとします。両方の行を一緒に選択すると、少なくとも 2 行目のインデントに沿って選択します (両方ではない場合)。コマンド ラインに貼り付けると、そのインデントでエラーが発生します。

インタープリターの単純な強制動作は、単にインデントを無視することです。

より強力な動作は、インタプリタにインデントをチェックしないように依頼することです。つまり、インデントがある場合、インタープリターはそれを使用して、構造化されたコード (上記のコードの 3 ~ 8 行目など) でもコピー/貼り付けできるようにする必要があります。ただし、インデント エラーがある場合は、それらを無視します。

ここで私が求めていることを行う方法がない場合、同様のことを行うためのトリックはありますか?それをあちこちに。

NB 1: インデント解除は、私が探しているものの解決策ではありません。

注意 2: インタープリターとコピー/ペースト機能を併用すると、コードを簡単にテストするための非常に強力な方法が提供されますが、Python の明示的なインデント メカニズムは、ここで説明されているようなインタープリターの使用法に対する強力な欠点です。残念です。

4

4 に答える 4

2

ダミー コード ブロックを作成して、コピー アンド ペースト後にコードが正しい方法でインデントされるようにすることができます。コピー元のコードが次のようになっている場合:

...
    ...
        <python code to be copied>

次に、シェルで次のように記述します。

>>> if True:
>>>     if True:
>>> <Paste your code here>
于 2013-07-12T13:46:40.940 に答える