2013-05-16 8 views
7

インタラクティブなPython内でメソッドをテストし、それらの中に空白行を残すことは可能ですか?メソッド内で空白行を許可するようにインタラクティブなPythonを設定する方法

def f1(): 
    import random 
    import time 

    time.sleep(random.randint(1, 4)) 

これはそう、そうな回避策は、関数内のすべての空白行を削除することです馴染みのエラーに

IndentationError: unexpected indent 

を与えます。インタラクティブモード/ REPLで実行できることが本当に必須であるかどうかを知りたいです。

おかげ

+0

なぜインタープリタに空白行を追加する必要がありますか?コピーして貼り付けていますか?インタプリタでは、私はあなたが対話的なPythonを意味すると仮定します。 – SethMMorton

+0

私はあなたに空白の問題があると思う@FogleBirdは正しく、空白をきれいにし、空白行に問題はない。 'pep8'のような静的解析ツールを使うと、余分な空白の警告が表示されることがあります。 @SethMMorton; –

+1

;私はverbage "interactive python"を使用するように質問を修正しました。 – javadba

答えて

8

はあまり助けにならないかもしれないが、空白行がインデントされている場合、それは動作します。明確にするために示さドット:特に対話インタプリタへのコピー・貼り付けコードのために、

def f1(): 
....import random 
....import time 
.... 
....time.sleep(random.randint(1, 4)) 
+0

空白行のスペースも1つでも有効です。彼らは完全なインデントを必要としません。 – geoffspear

+1

私は単一のスペースを追加しました。どうも!私が尋ねるのが妥当な質問だったと思ったら、質問を投票してもらえますか?どうも – javadba

0

1つのオプションは、その生の文字列リテラルとexecでそれを埋め込むことです。

exec(r''' 
def f1(): 
    import random 
    import time 

    time.sleep(random.randint(1, 4))''') 

もしコードます既に入力しているのは'''の文字列を使用していますが、代わりにr"""..."""の引用符で囲みます。すでに'''"""の両方を使用している場合は、これは機能しません。

関連する問題