Найти тему
SCIENCE IT

Un module comme Skript invoquent

https://as2.ftcdn.net/jpg/02/47/12/75/500_F_247127536_OUtu4UhT0k7MtcFuSX1UOGfLzyLIUCjj.jpg
https://as2.ftcdn.net/jpg/02/47/12/75/500_F_247127536_OUtu4UhT0k7MtcFuSX1UOGfLzyLIUCjj.jpg

Si vous appelez un module Python comme celui-ci :

python fibo.python.py <arguments> python fibo.python.py

le code dans le module est exécuté comme si le module avait été importé. La seule différence est que __name__ est maintenant "__prin__" et non plus le nom du module. Si vous ajoutez maintenant les lignes suivantes à la fin du module :

if __name__ == "__principal__" :
importation
fib(int(sys.argv[1])))

vous pouvez utiliser le fichier à la fois comme script et comme module importable, puisque le code qui évalue la ligne de commande n'est exécuté que si le module est exécuté directement comme fichier principal :

python fibo.py 50
1 1 2 3 5 8 13 21 34
Ce code n'est pas exécuté lors de l'importation du module :
>>> Importer des fibres
>>>

Ceci est souvent utilisé pour fournir une interface utilisateur pratique au module ou à des fins de test (lorsque le module est exécuté comme un script, une suite d'exécution est lancée).

Le chemin de recherche du module

Lors de l'importation d'un module appelé spam, l'agent utilisateur recherche d'abord un module intégré appelé spam. S'il n'est pas trouvé, il recherche un fichier appelé spam.py dans la liste des répertoires de la variable sys.path. sys.path est appelé avec

le répertoire contenant le script d'entrée (ou le répertoire courant),

PYTHONPATH (une liste de répertoires avec la même syntaxe que la variable shell PATH)

le standard dépendant de l'installation.

Après l'initialisation, les programmes Python peuvent changer le chemin du système. Le répertoire contenant le script en cours d'exécution se trouve au début du chemin de recherche, avant les chemins de la bibliothèque standard. Cela signifie que les modules de ce répertoire seront chargés à la place des modules de la bibliothèque standard s'ils portent le même nom. Ceci est une erreur si vous ne voulez pas remplacer le module de bibliothèque standard. Voir la section Modules standard pour plus d'informations.

Fichiers "compilés" en Python

Pour accélérer le démarrage de programmes courts qui utilisent de nombreux formulaires standard, nous créons des fichiers qui sont déjà "byte-compiled". S'il existe un fichier appelé spam.pyc, il s'agit d'une version "byte-compiled" du fichier spam.py et du formulaire spam. La dernière fois que le fichier spam.py a été modifié, il est enregistré comme spam.pyc. Si les temps ne correspondent pas, le fichier .pyc est ignoré.

  • Normalement, il n'est pas nécessaire de faire quoi que ce soit pour créer le fichier spam.pyc. Chaque fois que spam.py est compilé avec succès, vous essayez d'écrire la version compilée sur spam.pyc. Si le processus échoue, aucune erreur ne se produira ; si pour une raison quelconque le fichier n'est pas entièrement écrit, le fichier spam.pyc résultant sera automatiquement détecté comme incorrect et ignoré. Le contenu de spam.pyc est indépendant de la plate-forme, vous permettant de partager un répertoire de modules avec d'autres machines quelle que soit leur architecture.

Quelques conseils pour les experts :

Si l'interpréteur Python est lancé avec l'indicateur -O, le code optimisé est stocké dans des fichiers.pyo. Le code optimisé n'aide pas beaucoup pour le moment, car il ne fait que supprimer les affirmations. Si vous utilisez -O, tout le code octet est optimisé ;.pyc est ignoré et les fichiers.py sont compilés en code octets optimisé.

Si deux drapeaux -O sont passés à l'interpréteur Python, le compilateur de bytecode effectue des optimisations qui peuvent provoquer un dysfonctionnement du programme. Actuellement, seules les chaînes __doc__ sont supprimées du code byte, ce qui donne des fichiers.pyo plus petits. Comme certains programmes sont basés sur leur disponibilité, vous ne devriez activer cette option que si vous savez ce que vous faites.

Un programme ne fonctionnera pas plus rapidement s'il est lu par un fichier.pyc ou.pyo au lieu d'un fichier.py. Le seul avantage de vitesse est au démarrage des fichiers.

  • Si un script est exécuté en l'appelant depuis la ligne de commande, le byte code n'est jamais écrit dans un fichier.pyc ou.pyo. Par conséquent, le temps de démarrage d'un script peut être réduit en échangeant du code dans un module. Vous pouvez également exécuter un fichier.pyc ou.pyo directement depuis la ligne de commande.

Vous pouvez avoir un fichier.pyc ou.pyo sans avoir un fichier appelé spam.py pour le même module. Ceci peut être utilisé pour fournir du code Python qui est relativement difficile à reconstruire.

Le module de compilation peut créer des fichiers.pyc (ou.pyo si vous utilisez -O) à partir de tous les modules d'un répertoire.

Modules standard

Python est livré avec une bibliothèque de modules standard, qui sont décrits dans la référence de la bibliothèque Python. Pour permettre l'accès aux opérations du système (comme les appels système) ou pour des raisons d'efficacité. La combinaison de ces modules est une option dans la configuration, qui dépend également de la plate-forme utilisée.

https://as1.ftcdn.net/jpg/01/82/99/44/500_F_182994429_K2ehqaPqdIg9ZCfd2nTXLkpyLmzr87UJ.jpg
https://as1.ftcdn.net/jpg/01/82/99/44/500_F_182994429_K2ehqaPqdIg9ZCfd2nTXLkpyLmzr87UJ.jpg