インタープリタを使用してターミナルで python3 コードをコンパイルする

インタープリタを使用してターミナルで python3 コードをコンパイルする

コマンドを使用してコードをコンパイルするとpython3 name.py、コードは実行されますが、その後、すべての処理が終了し、コンパイルされたデータを使用して何もできなくなります。

何らかの方法でプログラムをインタープリターにコンパイルし、そのインタープリターでデータを試すことができるようにしたいと考えています。たとえば、timeit(function(argument))name.py プログラムで定義および設定された関数と引数を使用したいと考えています。

答え1

探しているのはスイッチです-i。man ページによると:

-i    When  a  script  is passed as first argument or the -c option is
      used, enter interactive mode after executing the script  or  the
      command.  It does not read the $PYTHONSTARTUP file.  This can be
      useful to inspect global variables  or  a  stack  trace  when  a
      script raises an exception.

したがって、スクリプト名が次の場合は、name.py次を実行する必要があります。

python3 -i name.py

答え2

@daltonfury42 の回答は、その方法の 1 つですが、インタープリタに入る前にまずスクリプトを実行することに注意してください。もう 1 つの方法は、スクリプトと同じディレクトリでインタープリタを実行してインポートすることです。

$ cat spam.py 
def main(*args):
    print("Called main() with args: ", args)

if __name__ == "__main__":
    main("foo")
$ python3 spam.py 
Called main() with args:  ('foo',)
$ python3
>>> import spam
>>> spam.main("bar")
Called main() with args:  ('bar',)
>>> 

関連情報