Risposte:
from file1 import *
importerà tutti gli oggetti e i metodi in file1
ImportError: No module named file1
Importa file1
all'interno file2
:
Per importare tutte le variabili da file1 senza inondare lo spazio dei nomi di file2, utilizzare:
import file1
#now use file1.x1, file2.x2, ... to access those variables
Per importare tutte le variabili da file1 allo spazio dei nomi di file2 (non consigliato):
from file1 import *
#now use x1, x2..
Dai documenti :
Sebbene sia valido da utilizzare
from module import *
a livello di modulo, di solito è una cattiva idea. Per uno, questo perde un'importante proprietà che Python altrimenti avrebbe - puoi sapere dove ogni nome di livello superiore è definito da una semplice funzione di "ricerca" nel tuo editor preferito. Ti aprirai anche ai problemi in futuro, se alcuni moduli aumentano funzioni o classi aggiuntive.
import file1
allora.
file1.varX
a ciascun file.
Meglio importare esplicitamente x1 e x2 :
from file1 import x1, x2
Ciò consente di evitare inutili conflitti nello spazio dei nomi con variabili e funzioni file1
durante il lavoro file2
.
Ma se vuoi davvero, puoi importare tutte le variabili:
from file1 import *
In realtà non è proprio lo stesso importare una variabile con:
from file1 import x1
print(x1)
e
import file1
print(file1.x1)
Anche se al momento dell'importazione x1 e file1.x1 hanno lo stesso valore, non sono le stesse variabili. Ad esempio, chiama una funzione in file1 che modifica x1 e quindi prova a stampare la variabile dal file principale: non vedrai il valore modificato.
La risposta di Marc è corretta. In realtà, puoi stampare l'indirizzo di memoria per le variabili print(hex(id(libvar))
e puoi vedere che gli indirizzi sono diversi.
# 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)))
In Python
puoi accedere ai contenuti di altri file come se fossero
una specie di libreria, rispetto ad altre lingue come java o qualsiasi altra lingua base, Questo è davvero fantastico;
Questo rende l'accesso al contenuto del file o lo importa in per elaborarlo o per fare qualsiasi cosa con esso; E questo è il motivo principale per cui Python
è la lingua preferita per la scienza dei dati e l'apprendimento automatico ecc.;
E questa è la foto di project structure
Dove accedo alle variabili da .env file
dove API links
risiedono le chiavi segrete e.
Struttura generale:
from <File-Name> import *