Hoe kan ik variabelen van het ene bestand naar de andere importeren?
Voorbeeld: file1
Heeft de variabelen x1
en x2
hoe u deze doorgeeft aan file2
?
Hoe kan ik alle van de variabelen van de ene naar de andere importeren?
Antwoord 1, Autoriteit 100%
from file1 import *
importeert alle objecten en methoden in bestand1
Antwoord 2, Autoriteit 52%
Importeer file1
Binnen file2
:
Om alle variabelen uit Bestand1 te importeren zonder de naamruimte van File2 te overstromingen, gebruikt u:
import file1
#now use file1.x1, file2.x2, ... to access those variables
Om alle variabelen te importeren van Bestand1 naar FILE2’s NameSpace (niet aanbevolen):
from file1 import *
#now use x1, x2..
Vanaf de docs :
Hoewel het geldig is om
from module import *
op module-niveau te gebruiken, is het
Meestal een slecht idee. Voor één verliest dit een belangrijk python
Anders heeft u – u kunt weten waar elke naam van het Toplevel wordt gedefinieerd door een
Eenvoudige “Zoeken” -functie in uw favoriete editor. Je bent ook open
jezelf tot problemen in de toekomst, als sommige module extra groeit
functies of klassen.
Antwoord 3, Autoriteit 28%
het beste om x1 en x2 expliciet te importeren:
from file1 import x1, x2
Hierdoor kunt u onnodige naamruimteconflicten met variabelen en functies uit file1
vermijden terwijl u in file2
werkt.
Maar als je echt wilt, kun je allevariabelen importeren:
from file1 import *
Antwoord 4, autoriteit 11%
Eigenlijk is dit niet hetzelfde om een variabele te importeren met:
from file1 import x1
print(x1)
en
import file1
print(file1.x1)
Hoewel op het moment van importeren x1 en file1.x1 dezelfde waarde hebben, zijn het niet dezelfde variabelen. Roep bijvoorbeeld een functie in file1 aan die x1 wijzigt en probeer vervolgens de variabele uit het hoofdbestand af te drukken: u zult de gewijzigde waarde niet zien.
Antwoord 5, autoriteit 4%
Marc antwoordis correct. Eigenlijk kun je het geheugenadres voor de variabelen print(hex(id(libvar))
afdrukken en je kunt zien dat de adressen anders zijn.
# 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)))
Antwoord 6, autoriteit 4%
script1.py
title="Hello world"
script2.pyis waar we script1 variabele gebruiken
Methode 1:
import script1
print(script1.title)
Methode 2:
from script1 import title
print(title)
Antwoord 7, autoriteit 2%
first.py:
a=5
second.py:
import first
print(first.a)
Het resultaat is 5.