Wenn ich meinen Code einfach mit dem Befehl kompiliere python3 name.py
, wird er ausgeführt, aber dann endet die ganze Geschichte und ich kann mit den kompilierten Daten nichts anfangen.
Ich möchte mein Programm irgendwie in den Interpreter kompilieren und die Möglichkeit haben, mit den Daten in diesem Interpreter zu experimentieren. Ich möchte beispielsweise timeit(function(argument))
die Funktion und das Argument verwenden, die in meinem Programm name.py definiert und festgelegt sind.
Antwort1
Was Sie suchen, ist der -i
Schalter. Laut den Manpages:
-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.
Wenn Ihr Skriptname also lautet, name.py
müssen Sie Folgendes ausführen:
python3 -i name.py
Antwort2
Die Antwort von @daltonfury42 ist eine Möglichkeit, dies zu tun. Beachten Sie jedoch, dass zuerst das Skript ausgeführt wird, bevor es in den Interpreter geht. Eine andere Möglichkeit besteht darin, den Interpreter einfach im selben Verzeichnis wie Ihr Skript auszuführen und es zu importieren.
$ 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',)
>>>