Importer modul inn Python med eksempler
โก Smart oppsummering
Importer inn Python lar รฉn fil gjenbruke variablene, funksjonene og klassene som er definert i en annen. En modul er ganske enkelt en .py-fil, mens en pakke grupperer relaterte moduler i en katalog merket med en __init__.py-fil.

Avsnittene nedenfor forklarer moduler, pakker, de ulike importstilene og hvordan absolutt og relativ import fungerer i Python.
Hva er modulene i Python?
En modul er en fil med Python kode. Koden kan vรฆre i form av variabler, funksjoner eller en definert klasse. Filnavnet blir modulnavnet.
For eksempel, hvis filnavnet ditt er guru99.py, vil modulnavnet vรฆre guru99. Med modulfunksjonalitet kan du bryte koden din i forskjellige filer i stedet for รฅ skrive alt i รฉn fil.
Hva er den Python importere modul?
En fil regnes som en modul i PythonFor รฅ bruke modulen mรฅ du importere den ved hjelp av importere nรธkkelord. Funksjonene eller variablene som finnes i filen kan brukes i en annen fil ved รฅ importere modulen. Denne funksjonaliteten er tilgjengelig pรฅ andre sprรฅk som TypeScript, JavaManus, Java, Ruby osv.
Hvordan opprette og importere en modul i Python?
Nรฅ skal vi opprette en modul og importere den til en annen fil.
Her er flyten for รฅ opprette og importere modulen som vist pรฅ skjermbildet:
Fรธlg trinnene som er gitt for รฅ opprette en modul i Python.
Mappestrukturen som brukes til รฅ teste koden er som fรธlger:
modtest/ test.py display.py
Trinn 1) Opprett en fil og gi den navnet test.py
Trinn 2) Lag en funksjon som heter display_message() inne i test.py
Def display_message():
return "Welcome to Guru99 Tutorials!"
Trinn 3) Opprett nรฅ en annen fil display.py.
Trinn 4) Importer modulen test.py-filen i display.py, som vist nedenfor:
import test
Nรฅr du importerer, trenger du ikke รฅ nevne test.py, men bare navnet pรฅ filen.
Trinn 5) Deretter kan du kalle funksjonen display_message() fra test.py i display.py. Du mรฅ bruke module_name.function_name.
For eksempel test.display_message().
Import test
print(test.display_message())
Trinn 6) Nรฅr du kjรธrer display.py, fรฅr du fรธlgende Utgang:
Welcome to Guru99 Tutorials!
Importere en klasse i Python
Tidligere har vi sett en enkel modul med en funksjon. Her skal vi opprette en klasse og referere til klassen i en annen fil.
Mappstrukturen for รฅ teste koden er som fรธlger:
myproj/ Car.py display.py
Lag en fil kalt 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 finnes attributtene brand_name, model og manu_year. Funksjonene som er definert i klassen er car_details(), get_Car_brand(), get_Car_model().
La oss nรฅ bruke filen Car.py som en modul i en annen fil kalt 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())
Utgang:
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รฅ tilgang til alle variablene og funksjonene fra Car.py ved hjelp av Car-modulen.
Bruker fra til importmodul
Du kan bare importere en liten del av modulen, dvs. bare de nรธdvendige funksjonene og variabelnavnene fra modulen, i stedet for รฅ importere hele koden.
Nรฅr du bare vil importere bestemte ting, kan du bruke nรธkkelordet ยซfraยป for รฅ importere det du รธnsker.
Sรฅ syntaksen er
from module import your function_name , variables,... etc.
Mappestrukturen som brukes til รฅ teste koden er som fรธlger:
modtest/ test.py display.py
I test.py er det to funksjoner som vist:
Filnavn: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nรฅ trenger du display_message()-funksjonen. Funksjonen eller variabelen du importerer kan nรฅs direkte som vist nedenfor:
Filnavn: display.py
from test import display_message print(display_message())
Utgang:
Welcome to Guru99 Tutorials!
Hvis du nรฅ bruker funksjonen display_message1(), vil den gi en feilmelding om at funksjonen ikke er definert som vist nedenfor:
from test import display_message print(display_message1())
Utgang:
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 modulen
Import lar deg importere hele modulen ved รฅ bruke import etterfulgt av modulnavnet, dvs. filnavnet eller biblioteket som skal brukes.
Syntaks:
Import module
Eller ved รฅ bruke
from module import *
Mappestrukturen som brukes til รฅ teste koden er som fรธlger:
modtest/ test.py display.py
Fรธlgende er kodedetaljene inne i test.py
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Bruke importmodulen
Ved รฅ bare bruke importmodulnavnet, for รฅ referere til variablene og funksjonene i modulen, mรฅ du sette modulnavnet foran dem.
Eksempel
Filnavn: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Modulnavnet test brukes til รฅ referere til funksjonene og variablene i modultesten.
Utgang:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Bruker import *
La oss se et eksempel ved รฅ bruke import *. Ved hjelp av import *, er funksjonene og variablene direkte tilgjengelige, som vist i eksemplet nedenfor:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Utgang:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
funksjonen dir( ).
dir() er en innebygd funksjon i Pythondir() returnerer alle egenskapene og metodene, inkludert det gitte objektets innebygde egenskaper.
Sรฅ nรฅr dir() brukes pรฅ modulen, vil den gi deg variablene og funksjonene som finnes i modulen.
Her er et fungerende eksempel pรฅ dir() pรฅ en modul. Vi har en klasse som heter Car.py, la oss importere Car og tilordne den til dir() for รฅ se utdataene.
Mappestrukturen for รฅ 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)
Utdataene gir oss navnet pรฅ klassen og alle funksjonene som er definert i Car.py.
Du kan ogsรฅ prรธve รฅ bruke dir() pรฅ en innebygd modul tilgjengelig i PythonLa oss prรธve det samme pรฅ JSON modulen som vist i eksemplet nedenfor. Den vil vise alle egenskapene og metodene som er tilgjengelige i JSON modul.
Import json
json_details = dir(json)
print(json_details)
Utgang:
['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']
Nettsidepakker
En pakke er en katalog med alle moduler definert i den. ร lage en Python Hvis tolken behandler det som en pakke, bรธr katalogen din inneholde filen __init__.py. __init__.py gjรธr katalogen til en pakke. Her er oppsettet til pakken vi skal jobbe med.
Navnet pรฅ pakken er minpakkeFor รฅ begynne รฅ jobbe med pakken, opprett en katalog kalt mypackage/. Inne i katalogen opprett en tom fil kalt __init__.py. Opprett tre filer til: module1.py, module2.py og module3.py, og definer funksjonene som vist pรฅ skjermbildet. Her er detaljene for module1.py, module2.py og module3.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")
Ocuco pakke er klar til bruk. Kall nรฅ pakken i hvilken som helst av filene dine som vist nedenfor i test.py:
Her blir mypackage.module1 importert og gitt et aliasnavn som modus1Pรฅ samme mรฅte kan du bruke de andre modulene module2.py og module3.py fra mypackage.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Utgang:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Vi har nettopp demonstrert pakken med en enkel modul med funksjoner inni. I henhold til prosjektet ditt kan du ogsรฅ opprette pakker som har underpakker, dvs. undermapper som har moduler med definerte klasser.
Python Modulsรธkesti
Under utfรธrelsen, nรฅr Python kommer over importer modulnavn, prรธver tolken รฅ finne modulen. Den sรธker etter modulen i den innebygde modullisten, og deretter i alle katalogene som er definert i sys.path.
For รฅ oppsummere, gjรธr tolken fรธlgende sรธk for รฅ finne modulen:
- I din nรฅvรฆrende katalog.
- I den innebygde modullisten.
- Inne i sys.path-katalogene.
Du kan fรฅ detaljene for sys.path ved รฅ importere sys-modulen og skrive ut sys.path. Det vil gi deg listen over kataloger som vist nedenfor:
importsys
print(sys.path)
Utgang:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Du kan ogsรฅ endre banen og beholde katalogene i henhold til dine krav.
Bruker modulalias i importen
Du kan ogsรฅ konvertere modulnavnet til en kortere form ved รฅ gi det et aliasnavn. Aliaset kan opprettes ved hjelp av as sรธkeord.
Syntaks:
import filename as alias name
Mappestrukturen for รฅ teste koden vil vรฆre som fรธlger:
Mod test/ test.py display.py
Fรธlgende er koden inne i test.py
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nรฅ skal vi bruke 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 som brukes for testmodulen er t. Sรฅ funksjonene og variablene fra test.py kan refereres til ved hjelp av aliaset t.
Utgang:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Absolutt og relativ import i Python
Du vet nรฅ hvordan du importerer en fil som en modul i en annen fil. La oss nรฅ se hvordan du administrerer filene som er tilgjengelige i mapper. Filene i mappene kan importeres enten ved รฅ bruke absolutt eller relativ import.
Tenk pรฅ at du har din prosjektmappestruktur, som vist nedenfor:
Rotmappen er mittprosjekt/. Den har to undermapper, pakke1 og pakke2.
Mappen pakke1 har to moduler, modul1.py og modul2.py.
Mappen pakke2 har รฉn klasse myclass.py, en underpakke subpkg med module3.py, og siste modul4.py.
- I module1.py finnes det en funksjon som heter myfunc1.
- I module2.py finnes det en funksjon som heter myfunc2.
- I module3.py finnes det en funksjon som heter myfunc3.
- I module4.py finnes det en funksjon som heter myfunc4.
Bruk av absolutt import
For absolutte importer mรฅ du legge til hele banen til modulen din direkte fra prosjektets rotmappe.
La oss nรฅ se hvordan vi kan bruke absolutte importer for รฅ referere til funksjonene som finnes i hver av modulene.
For รฅ jobbe med funksjonen myfunc1, mรฅ du importere den slik:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
For รฅ jobbe med funksjonen myfunc3, mรฅ du importere den slik:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Fordeler og ulemper ved รฅ bruke absolutt import
Her er fordelene ved รฅ bruke absolutt import:
- Det blir lett รฅ tracSett modulene tilbake for kodesjekk.
- Enkel รฅ bruke og veldig grei.
- Hvis prosjektet flyttes til en annen bane, vil importene fortsatt forbli de samme.
Ulemper ved รฅ bruke absolutt import
Her er ulempene med รฅ bruke absolutt import:
- Importstien kan bli veldig lang hvis modulene er nestet og modulnavnene er lange.
Bruke relativ import
Med tanke pรฅ den samme mappestrukturen som nevnt ovenfor, skal vi se hvordan vi importerer den samme ved hjelp av relativ import.
I en relativ import er modulen som skal importeres relativ til gjeldende plassering, det vil si plasseringen der importsetningen finnes.
syntax
Ved relativ import mรฅ du legge til et punktum (.) fรธr modulnavnet nรฅr du importerer med fra.
Det vil vรฆre to punktum (..) foran modulnavnet hvis modulen er ett nivรฅ over gjeldende plassering.
Med henvisning til mappestrukturfiguren nevnt ovenfor, har vi fรธlgende moduler med deres funksjoner, som vi mรฅ referere til.
- I module1.py finnes det en funksjon som heter myfunc1.
- I module2.py finnes det en funksjon som heter myfunc2.
- I module3.py finnes det en funksjon som heter myfunc3.
- I module4.py finnes det en funksjon som heter myfunc4.
For รฅ jobbe med funksjonen myfunc1, mรฅ du importere den slik:
from .module1 import myfunc1
For รฅ jobbe med funksjonen myfunc3, mรฅ du importere den slik:
from .subpkg.module3 import myfunc3
Fordeler med relativ import
- Det er enkelt รฅ jobbe med relativ import.
- Fra nรฅvรฆrende sted kan importen forkortes i forhold til absolutt import.
Ulemper ved relativ import
- Ved รฅ bruke relativ import er det vanskelig รฅ tractilbake der koden ligger.



