##
3.23.1 対話的なインタプリタオブジェクト

`runsource`( | source[, filename[, symbol]])

  インタプリタ内のあるソースをコンパイルし実行します。引数は`compile_command()`のものと同じです。filenameのデフォルトは`'<input>'`で、symbolは`'single'`です。あるいくつかのことが起きる可能性があります:

  - 入力はが正しくない。`compile_command()`が例外(`SyntaxError`か`OverflowError`)を起こした場合。`showsyntaxerror()`メソッドの呼び出によって、構文トレースバックが表示されるでしょう。`runsource()`は`False`を返します。

  - 入力が完全でなく、さらに入力が必要。`compile_command()`が`None`を返した場合。`runsource()`は`True`を返します。

  - 入力が完全。`compile_command()`がコードオブジェクトを返した場合。(`SystemExit`を除く実行時例外も処理する)`runcode()`を呼び出すことによって、コードは実行されます。`runsource()`は`False`を返します。

  次の行を要求するために`sys.ps1`か`sys.ps2`のどちらを使うかを決定するために、戻り値を利用できます。

`runcode`( | code)

  コードオブジェクトを実行します。例外が生じたときは、トレースバックを表示するために`showtraceback()`が呼び出されます。伝わることが許されている`SystemExit`を除くすべての例外が捉えられます。

  `KeyboardInterrupt`についての注意。このコードの他の場所でこの例外が生じる可能性がありますし、常に捕らえることができるとは限りません。呼び出し側はそれを処理するために準備しておくべきです。

`showsyntaxerror`( | [filename])

  起きたばかりの構文エラーを表示します。複数の構文エラーに対して一つあるのではないため、これはスタックトレースを表示しません。filenameが与えられた場合は、Pythonのパーサが与えるデフォルトのファイル名の代わりに例外の中へ入れられます。なぜなら、文字列から読み込んでいるときはパーサは常に`'<string>'`を使うからです。出力は`write()`メソッドによって書き込まれます。

`showtraceback`( | )

  起きたばかりの例外を表示します。スタックの最初の項目を取り除きます。なぜなら、それはインタプリタオブジェクトの実装の内部にあるからです。出力は`write()`メソッドによて書き込まれます。

`write`( | data)

  文字列を標準エラーストリーム(`sys.stderr`)へ書き込みます。必要に応じて適切な出力処理を提供するために、導出クラスはこれをオーバーライドすべきです。