Extrait du manuel d’étude de Python pour mémoire.
Le client peut exécuter l’instruction import ou from. Si le module n’est pas chargé, ces instructions rechercheront, compileront et exécuteront le programme de fichiers du module. La principale différence est qu’import lit l’intégralité du module, il doit donc être défini avant que le nom de sa variable puisse être lu ; from obtiendra (ou copiera) les noms des variables spécifiques aux modules.
import fait qu’un nom de variable fait référence à l’ensemble de l’objet module, donc les propriétés du module doivent être obtenues par le nom du module (par exemple, module1.printer). et from copiera le nom de la variable dans un autre scope, afin de pouvoir utiliser le nom de la variable copiée directement dans le script sans passer par un module (par exemple, une imprimante).
from a le potentiel de casser les espaces de noms. Si vous importez des variables via from, et que ces variables sont dupliquées avec des variables existantes dans le champ d’application, les variables seront discrètement écrasées. Cela ne pose pas de problème lors de l’utilisation des instructions d’importation, car son contenu doit être obtenu par le nom du module. Cependant, en utilisant from, ce n’est pas un gros problème en pratique, tant que vous comprenez et anticipez cela, surtout si vous listez clairement les noms des variables d’importation (par exemple, from module import x, y, z).
En revanche, lorsqu’elle est utilisée avec l’appel de rechargement, l’instruction from pose un problème sérieux, car le nom de la variable importée peut faire référence à une version antérieure de l’objet. De plus, la forme issue de l’importation du module * peut effectivement casser l’espace de noms et rendre les noms des variables difficiles à comprendre, surtout lors de l’importation de plus d’un fichier.
Une suggestion plus pragmatique est que les modules simples ont généralement tendance à utiliser import plutôt que from. La plupart des instructions from sont utilisées pour énumérer explicitement les variables souhaitées, et sont limitées à utiliser la forme from * une seule fois par fichier. Ainsi, tout nom de variable non défini peut être considéré comme existant dans le module référencé à partir de *. Il faut vraiment utiliser import quand il faut utiliser la même variable de nom définie dans deux modules différents, auquel cas on ne peut pas utiliser from.
J’ai beaucoup parlé, je ne sais pas quoi dire, parlons-en brièvement.
- Module d’importation # Modules d’introduction
- de l’import du module Autre # Introduire classes, fonctions ou variables dans le module
- from Module import * # Introduire tous les membres « publics » du module
En termes simples :
importer une classe #把整个一班的学生引入了进来
d’un groupe d’importés Xiao Wang #只把一般的小王引入了进来
Par exemple :
Le package temporel en est un exemple, et les deux méthodes d’écriture suivantes sont identiques, comme suit :
|