コマンドpython3 name.py
を使用してコードをコンパイルすると、コードは実行されますが、ストーリー全体が終了し、コンパイルされたデータを使用して何もできなくなります。
私は何らかの形でプログラムをインタープリターにコンパイルし、そのインタープリターのデータを実験する能力を持ちたいです。たとえば、name.pyプログラムで定義および設定されている関数と引数でtimeit(function(argument))
を使用します。
探しているのは-i
スイッチです。マンページによると:
-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
@ daltonfury42の答えはそれを行う1つの方法ですが、インタプリタに入る前に最初にスクリプトを実行することに注意してください。もう1つは、スクリプトと同じディレクトリでインタープリターを実行し、インポートするだけです。
$ cat spam.py
def main(*args):
print("Called main() with args: ", args)
if __== "__main__":
main("foo")
$ python3 spam.py
Called main() with args: ('foo',)
$ python3
>>> import spam
>>> spam.main("bar")
Called main() with args: ('bar',)
>>>