Réponses:
from file1 import *
importera tous les objets et méthodes du fichier1
ImportError: No module named file1
Importer à l' file1
intérieur file2
:
Pour importer toutes les variables de file1 sans inonder l'espace de noms de file2, utilisez:
import file1
#now use file1.x1, file2.x2, ... to access those variables
Pour importer toutes les variables de file1 vers l'espace de noms de fichier2 (non recommandé):
from file1 import *
#now use x1, x2..
À partir de la documentation :
Bien qu'il soit valide à utiliser
from module import *
au niveau du module, c'est généralement une mauvaise idée. D'une part, cela perd une propriété importante que Python a autrement - vous pouvez savoir où chaque nom de niveau supérieur est défini par une simple fonction de «recherche» dans votre éditeur préféré. Vous vous exposez également à des problèmes à l'avenir, si certains modules développent des fonctions ou des classes supplémentaires.
import file1
alors.
file1.varX
chaque fichier au début .
Il est préférable d'importer explicitement x1 et x2 :
from file1 import x1, x2
Cela vous permet d’éviter les conflits d’espaces de noms inutiles avec les variables et les fonctions file1
lorsque vous travaillez dans file2
.
Mais si vous le souhaitez vraiment, vous pouvez importer toutes les variables:
from file1 import *
En fait, ce n'est pas vraiment la même chose d'importer une variable avec:
from file1 import x1
print(x1)
et
import file1
print(file1.x1)
Bien qu'au moment de l'importation, x1 et file1.x1 aient la même valeur, ce ne sont pas les mêmes variables. Par exemple, appelez une fonction dans file1 qui modifie x1 puis essayez d'imprimer la variable à partir du fichier principal: vous ne verrez pas la valeur modifiée.
La réponse de Marc est correcte. En fait, vous pouvez imprimer l'adresse mémoire des variables print(hex(id(libvar))
et vous pouvez voir que les adresses sont différentes.
# mylib.py
libvar = None
def lib_method():
global libvar
print(hex(id(libvar)))
# myapp.py
from mylib import libvar, lib_method
import mylib
lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))
Dans Python
vous pouvez accéder au contenu d'autres fichiers comme s'il s'agissait d'
une sorte de bibliothèque, par rapport à d'autres langages comme java ou n'importe quel langage de base oop, c'est vraiment cool;
Cela permet d'accéder au contenu du fichier ou de l'importer pour le traiter ou d'en faire quoi que ce soit; Et c'est la principale raison pour laquelle le Python
langage est hautement préféré pour la science des données et l'apprentissage automatique, etc.
Et c'est l'image de project structure
Où j'accède aux variables d' .env file
où leAPI links
résident les clés et secrètes.
Structure générale:
from <File-Name> import *