Importer modul ind Python med eksempler
Hvad er modulerne i Python?
Et modul er en fil med python-kode. Koden kan vรฆre i form af variabler, funktioner eller klassedefinerede. Filnavnet bliver modulnavnet.
For eksempel, hvis dit filnavn er guru99.py, vil modulnavnet vรฆre guru 99. Med modulfunktionalitet kan du opdele din kode i forskellige filer i stedet for at skrive alt i รฉn fil.
Hvad er det Python import modul?
En fil betragtes som et modul i python. For at bruge modulet skal du importere det vha importen sรธgeord. Funktionen eller variablerne i filen kan bruges i en anden fil ved at importere modulet. Denne funktionalitet er tilgรฆngelig pรฅ andre sprog, sรฅsom typescript, JavaScript, java, ruby โโosv.
Sรฅdan opretter og importerer du et modul i Python?
Nu vil vi oprette et modul og importere det i en anden fil.
Her er flowet til at oprette og importere modulet som vist pรฅ skรฆrmbilledet:
Fรธlg trinene for at oprette et modul i python.
Mappestrukturen, der bruges til at teste koden, er som fรธlger:
modtest/ test.py display.py
Trin 1) Opret en fil og navngiv den test.py
Trin 2) Inde i test.py opret en funktion kaldet display_message()
Def display_message():
return "Welcome to Guru99 Tutorials!"
Trin 3) Opret nu endnu en fil display.py.
Trin 4) Inside display.py importer moduletest.py filen, som vist nedenfor:
import test
Mens du importerer, behรธver du ikke at nรฆvne test.py, men blot navnet pรฅ filen.
Trin 5) Sรฅ kan du kalde funktionen display_message() fra test.py inde i display.py, du skal gรธre brug af modul_navn.funktionsnavn.
For eksempel test.display_message().
Import test print(test.display_message())
Trin 6) Nรฅr du udfรธrer display.py, fรฅr du fรธlgende Output:
Welcome to Guru99 Tutorials!
Import af en klasse i Python
Tidligere har vi set et simpelt modul med en funktion. Her vil der oprettes en klasse og henvise klassen til en anden fil.
Mappestrukturen til at teste koden er som fรธlger:
myproj/ Car.py display.py
Opret en fil kaldet Car.py med fรธlgende kode:
Filnavn: Car.py
class Car:
brand_name = "BMW"
model = "Z4"
manu_year = "2020"
def __init__(self, brand_name, model, manu_year):
self.brand_name = brand_name
self.model = model
self.manu_year = manu_year
def car_details(self):
print("Car brand is ", self.brand_name)
print("Car model is ", self.model)
print("Car manufacture year is ", self.manu_year)
def get_Car_brand(self):
print("Car brand is ", self.brand_name)
def get_Car_model(self):
print("Car model is ", self.model)
I filen Car.py er der attributter brand_name, model og manu_year. Funktionerne defineret inde i klassen er car_details(), get_Car_brand(), get_Car_model().
Lad os nu bruge filen Car.py som et modul i en anden fil kaldet display.py.
Filnavn: display.py
import Car
car_det = Car.Car("BMW","Z5", 2020)
print(car_det.brand_name)
print(car_det.car_details())
print(car_det.get_Car_brand())
print(car_det.get_Car_model())
Output:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Sรฅ vi kan fรฅ adgang til alle variabler og funktioner fra Car.py ved hjรฆlp af bilmodulet.
Bruger fra til import modul
Du kan kun importere en lille del af modulet, dvs. kun de nรธdvendige funktioner og variabelnavne fra modulet i stedet for at importere fuld kode.
Nรฅr du kun vil have bestemte ting, der skal importeres, kan du bruge "fra" nรธgleord til at importere det, du รธnsker.
Sรฅ syntaksen er
from module import your function_name , variables,... etc.
Mappestrukturen, der bruges til at teste koden, er som fรธlger:
modtest/ test.py display.py
I test.py er der 2 funktioner som vist:
Filnavn: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nu vil du have display_message() funktion. Funktionen eller variabelen, som du importerer, kan tilgรฅs direkte som vist nedenfor:
Filnavn: display.py
from test import display_message print(display_message())
Output:
Welcome to Guru99 Tutorials!
Hvis du nu tilfรฆldigvis bruger funktionen display_message1(), vil det give en fejl om, at funktionen ikke er defineret som vist nedenfor:
from test import display_message print(display_message1())
Output:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Importerer alt fra modulet
Import giver dig mulighed for at importere hele modulet ved at bruge import efterfulgt af modulnavn, dvs. filnavnet eller det bibliotek, der skal bruges.
Syntaks:
Import module
Eller ved at bruge
from module import *
Mappestrukturen, der bruges til at teste koden, er som fรธlger:
modtest/ test.py display.py
Fรธlgende er kodedetaljerne inde i test.py
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Brug af importmodulet
Ved blot at bruge import modulnavn, for at henvise til variablerne og funktionerne inde i modulet, skal det prรฆfikses med modulnavn.
Eksempel
Filnavn: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Modulnavntesten bruges til at henvise til funktionen og variablerne i modultesten.
Output:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Brug af import *
Lad os se et eksempel ved hjรฆlp af import *. Ved brug af import *, er funktionerne og variablerne direkte tilgรฆngelige, som vist i eksemplet nedenfor:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Output:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Dir( )-funktionen
dir() er en indbygget funktion i python. dir() returnerer alle egenskaber og metoder, inklusive det givne objekts indbyggede egenskaber.
Sรฅ nรฅr dir() bruges pรฅ modulet, vil det give dig variablerne, funktioner der er til stede i modulet.
Her er et fungerende eksempel pรฅ dir() pรฅ et modul. Vi har en klasse kaldet Car.py, lad os importere Car og tildele til dir() for at se output.
Mappestrukturen til at teste koden vil vรฆre som fรธlger:
test prop/ Car.py test.py
Filnavn: Car.py
class Car:
brand_name = "BMW"
model = "Z4"
manu_year = "2020"
def __init__(self, brand_name, model, manu_year):
self.brand_name = brand_name
self.model = model
self.manu_year = manu_year
def car_details(self):
print("Car brand is ", self.brand_name)
print("Car model is ", self.model)
print("Car manufacture year is ", self.manu_year)
def get_Car_brand(self):
print("Car brand is ", self.brand_name)
def get_Car_model(self):
print("Car model is ", self.model)
Filnavn: test.py
import Car class_contents = dir(Car) print(class_contents)
Outputtet giver os navnet pรฅ klassen og alle de funktioner, der er defineret i Car.py.
Du kan ogsรฅ prรธve at bruge dir() pรฅ et indbygget modul tilgรฆngeligt i Python. Lad os prรธve det samme json modul som vist i eksemplet nedenfor. Det vil vise alle de egenskaber og metoder, der er tilgรฆngelige i json modul.
Import json json_details = dir(json) print(json_details)
Output:
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__bu iltins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__pac kage__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_en coder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'loa d', 'loads', 'scanner']
Pakker
En pakke er en mappe med alle moduler defineret inde i den. At lave en Python tolk behandler det som en pakke, skal dit bibliotek have init.pyfile. Init.py laver mappen som en pakke. Her er layoutet af pakken, som vi skal arbejde pรฅ.
Pakkens navn er min pakke. For at begynde at arbejde med pakken skal du oprette en mappe kaldet package/. Inde i mappen skal du oprette en tom fil kaldet __init__.py. Opret yderligere 3 filer modul1.py, modul2.py og modul3.py og definer funktionerne som vist pรฅ skรฆrmbilledet. Her er detaljerne om modul1.py, modul2.py og modul3.py
modul1.py
def mod1_func1():
print("Welcome to Module1 function1")
def mod1_func2():
print("Welcome to Module1 function2")
def mod1_func3():
print("Welcome to Module1 function3")
modul2.py
def mod2_func1():
print("Welcome to Module2 function1")
def mod2_func2():
print("Welcome to Module2 function2")
def mod2_func3():
print("Welcome to Module2 function3")
modul3.py
def mod3_func1():
print("Welcome to Module3 function1")
def mod3_func2():
print("Welcome to Module3 function2")
def mod3_func3():
print("Welcome to Module3 function3")
pakkeer klar til brug. Kald nu pakken inde i enhver af dine filer som vist nedenfor :test.py:
Her importeres mypackage.module1 og fรฅr et aliasnavn som mod1. Pรฅ samme mรฅde kan du bruge andre moduler modul2.py og modul3.py fra min pakke.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Output:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Vi har netop demonstreret pakken med et simpelt modul med funktioner indeni. I henhold til dit projekt kan du ogsรฅ pakke med underpakker. Undermapper/ med moduler med definerede klasser.
Python Modulsรธgningssti
Under udfรธrelse, nรฅr python stรธder pรฅ import modulnavn, forsรธger tolken at lokalisere modulet. Den sรธger efter modulet i listen over indbyggede moduler. Later i alt de mapper, der er defineret inde i sys.path.
For at opsummere udfรธrer tolken fรธlgende sรธgning for at finde modulet:
- I din nuvรฆrende mappe.
- Ind i listen over indbyggede moduler
- Inde i sys.path bibliotekerne
Du kan fรฅ detaljerne om sys.path ved at importere sys-modulet og udskrive sys.path. Det vil give dig listen over mapper som vist nedenfor:
importsys print(sys.path)
Output:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Du kan ogsรฅ รฆndre stien og beholde mapperne i henhold til dine krav.
Brug af modulalias i importen
Du kan ogsรฅ konvertere modulnavnet til en kortere form ved at give det et alias. Aliaset kan udfรธres ved hjรฆlp af nรธgleordet.
Syntaks:
import filename as alias name
Mappestrukturen til at teste koden vil vรฆre som fรธlger:
Mod test/ test.py display.py
Fรธlgende er koden inde i test.py
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nu vil bruge et alias for test.py i display.py
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
Aliaset der bruges til testmodulet er t . Sรฅ funktionen og variablerne fra test.py kan henvises ved hjรฆlp af aliasset t.
Output:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Absolut og relativ import i Python
Du ved nu, hvordan du importerer en fil som et modul i en anden fil. Lad os nu se, hvordan man administrerer de tilgรฆngelige filer i mapper. Filerne i mapperne kan importeres enten ved at bruge absolut eller relativ import.
Overvej, at du har din projektmappestruktur, som vist nedenfor:
Rodmappen er mit projekt/. Den har to undermapper pakke1 og pakke2.
Mappen pakke1 har to moduler, modul1.py og modul2.py.
Mappen pakke2 har en klasse myclass.py, en underpakke underpakke med modul3.py og sidste modul4.py.
- I modul1.py er der en funktion kaldetmyfunc1.
- I modul2.py er der en funktion kaldet myfunc2.
- I modul3.py er der en funktion kaldet myfunc3.
- I modul4.py er der en funktion kaldet myfunc4.
Brug af absolut import
For absolut import skal du tilfรธje hele stien til dit modul direkte fra projektets rodmapp.
Lad os nu se, hvordan man gรธr brug af absolut import til at henvise til funktionerne i hvert af modulerne.
For at arbejde med functionmyfunc1 skal du importere som fรธlger:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
For at arbejde med funktionen myfunc3 skal du importere som fรธlger:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Fordele og ulemper ved at bruge absolut import
Her er fordelene ved at bruge absolut import:
- Det bliver nemt at spore modulerne tilbage til kodekontrol.
- Nem at bruge og meget ligetil.
- Hvis projektet flyttes til en anden vej, vil importen stadig forblive den samme.
Ulemper ved at bruge absolut import
Her er ulemperne ved at bruge absolut import:
Ulemper:
- Importstien kan blive meget lang i tilfรฆlde af, at modulerne er indlejret, og hvis navnet pรฅ modulerne er langt.
Brug af relativ import
I betragtning af den samme mappestruktur, der er nรฆvnt nedenfor, vil vi se, hvordan du importerer den samme ved hjรฆlp af relative importer.
Ved relativ import er modulet, der skal importeres, i forhold til den aktuelle placering, som er den placering, hvor importerklรฆringen er til stede.
Syntaks
Ved relativ import skal du tilfรธje et punktum (.) fรธr modulnavnet, nรฅr du importerer vha fra.
Der vil gรฅ 2 perioder (..) fรธr modulnavnet, hvis modulet er i et niveau op fra den aktuelle placering.
Med henvisning til mappestrukturfiguren nรฆvnt ovenfor, har vi fรธlgende moduler med deres funktion, som vi skal henvise til.
- I modul1.py er der en funktion kaldetmyfunc1.
- I modul2.py er der en funktion kaldet myfunc2.
- I modul3.py er der en funktion kaldet myfunc3.
- I modul4.py er der en funktion kaldet myfunc4.
For at arbejde med functionmyfunc1 skal du importere som fรธlger:
from .module1 import myfunc1
For at arbejde med funktionen myfunc3 skal du importere som fรธlger:
from .subpkg.module3 import myfunc3
Fordele ved relativ import
fordele:
- Det er nemt at arbejde med relativ import.
- Fra den nuvรฆrende placering kan importen forkortes i forhold til absolut import.
Ulemper ved relativ import
Ulemper:
- Ved hjรฆlp af relativ import er det svรฆrt at spore tilbage, hvor koden er
Resumรฉ
- Importer ind Python hjรฆlper dig med at henvise til koden, dvs. .funktioner/objekter, der er skrevet i en anden fil. Det bruges ogsรฅ til at importere python-biblioteker/-pakker, der er installeret ved hjรฆlp af pip(python-pakkehรฅndtering), og du skal derefter bruge i din kode.
- Importfunktionalitet er tilgรฆngelig pรฅ andre sprog sรฅsom typescript, JavaScript, java, ruby โโosv.
- Et modul er python er koden skrevet inde i filen, for eksempel (test.py). Inde i din fil kan du have dine variabler, funktioner eller din klasse defineret. Hele filen bliver et modul og kan importeres i en anden fil for at referere til koden.
- Med modulfunktionalitet kan du opdele din kode i forskellige filer i stedet for at skrive alt i รฉn fil. Later, ved at bruge import, kan du henvise til koden inde i den fil, du har brug for.
- Python har sine indbyggede moduler, og ogsรฅ eksterne biblioteker/pakker installeret ved hjรฆlp af en python-pakkehรฅndtering (pip), fx pandaer, NumPy osv. omtales som moduler.
- Du kan kun importere en lille del af modulet, dvs. kun de nรธdvendige funktioner og variabelnavne fra modulet i stedet for at importere fuld kode.
- Du kan ogsรฅ konvertere modulnavnet til en kortere form ved at give det et alias. Aliaset kan udfรธres ved hjรฆlp af nรธgleordet.
- En pakke er en mappe med alle moduler defineret inde i den. At lave en Python tolk behandler det som en pakke, skal dit bibliotek have __init.pyfile. Init.py laver mappen som en pakke. Her er layoutet af pakken, som vi skal arbejde pรฅ.
- Under udfรธrelse, nรฅr python stรธder pรฅ import modulnavn, forsรธger tolken at lokalisere modulet. Den sรธger efter modulet i listen over indbyggede moduler. Later i alt de mapper, der er defineret inde i sys.path.
- For absolut import skal du tilfรธje hele stien til dit modul direkte fra projektets rodmapp.
- Ved relativ import er modulet, der skal importeres, i forhold til den aktuelle placering, som er den placering, hvor importerklรฆringen er til stede.



