web-dev-qa-db-fra.com

Compiler le code python3 dans un terminal avec interpréteur

Lorsque je compile mon code simplement avec la commande python3 name.py, il est exécuté, mais toute l'histoire se termine et je ne peux rien faire avec les données compilées.

Je veux en quelque sorte compiler mon programme pour l'interprète et pouvoir expérimenter les données qu'il contient. Par exemple, je souhaite utiliser timeit(function(argument)) avec la fonction et l'argument, définis et définis dans le programme my.py.

2
Oresto

Ce que vous recherchez, c’est le commutateur -i. Selon les pages de manuel:

-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.

Donc, si votre nom de script est name.py, vous devez exécuter:

python3 -i name.py
2
daltonfury42

La réponse de @ daltonfury42 est un moyen de le faire, mais notez que le script sera d'abord exécuté avant d'entrer dans l'interpréteur. Une autre consiste à exécuter l’interprète dans le même répertoire que votre script et à l’importer.

$ 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',)
>>> 
0
Timo