J'ai fait du Python pendant des années en cours et à chaque fois je me rappelle bien que les profs nous disaient que le langage Python était interprété et que chaque instruction était traduite une à une en routine pré-compilée.
Est-ce que quelqu'un pourrait m'expliquer pourquoi cette info est dans tous les cours de Python alors qu'apparemment le Python serait un langage compilé dans un fichier .pyc qui serait exécuté ?
+ Est-ce qu'il y a des livres indispensables à lire pour comprendre le Python réellement parce qu'après avoir fait des cours de Python je me sens idiot de ne pas avoir entendu parler des fichiers .pyc... c'est quand même la base... Est-ce que quelqu'un comprend d'où vient cette confusion ?
Cette question est courante : https://stackoverflow.com/questions/2998215/if-python-is-interpreted-what-are-pyc-files
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Quelles réponses ne sont pas présentes dans le lien explicatif que je t'ai partagé ?
Si tu as une question plus précise alors pose là... Mais celle posée à ton post original, et la réponse apportée au lien partagé répond amplement à ta question plutôt généraliste sur le sujet.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Les fichiers compilés par ton interpréteur python (.pyc) sont au format byte code, qui n'est pas exécutable directement par la machine.
Les fichiers compilés en C++ (par exemple) par ton compilateur sont au format machine code, qui est exécutable directement par n'importe quelle machine.
Donc, en gros, les deux fichiers sont "compilés" mais un seul a besoin d'être interprété pour être exécuté.
Pour tout compliquer, le bytecode (suite d'instructions pour une machine virtuelle spécialisée pour le langage) peut être traduit en instructions machine lors de son chargement en machine (ou de sa première exécution).
C'est la notion de "Just In Time" , par opposition à "Ahead Of Time", la compilation classique qui se fait avant le chargement.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.