Importera modul in Python med exempel
โก Smart sammanfattning
Importera in Python lรฅter en fil รฅteranvรคnda variabler, funktioner och klasser som definierats i en annan. En modul รคr helt enkelt en .py-fil, medan ett paket grupperar relaterade moduler i en katalog markerad med en __init__.py-fil.

Avsnitten nedan fรถrklarar moduler, paket, de olika importstilarna och hur absoluta och relativa importer fungerar i Python.
Vad รคr modulerna i Python?
En modul รคr en fil med Python kod. Koden kan vara i form av variabler, funktioner eller en definierad klass. Filnamnet blir modulnamnet.
Till exempel, om ditt filnamn รคr guru99.py, kommer modulnamnet att vara guru99. Med modulfunktionalitet kan du dela upp din kod i olika filer istรคllet fรถr att skriva allt i en fil.
Vad รคr det Python importera modul?
En fil betraktas som en modul i PythonFรถr att anvรคnda modulen mรฅste du importera den med hjรคlp av importera nyckelord. Funktionerna eller variablerna som finns i filen kan anvรคndas i en annan fil genom att importera modulen. Denna funktion รคr tillgรคnglig pรฅ andra sprรฅk som TypeScript, JavaManus, Java, Ruby, etc.
Hur man skapar och importerar en modul i Python?
Nu ska vi skapa en modul och importera den till en annan fil.
Hรคr รคr flรถdet fรถr att skapa och importera modulen som visas pรฅ skรคrmdumpen:
Fรถlj stegen som anges fรถr att skapa en modul i Python.
Mappstrukturen som anvรคnds fรถr att testa koden รคr fรถljande:
modtest/ test.py display.py
Steg 1) Skapa en fil och dรถp den till test.py
Steg 2) Inuti test.py skapa en funktion som heter display_message()
Def display_message():
return "Welcome to Guru99 Tutorials!"
Steg 3) Skapa nu en annan fil display.py.
Steg 4) Importera modulen test.py-filen inuti display.py, som visas nedan:
import test
Nรคr du importerar behรถver du inte ange test.py utan bara namnet pรฅ filen.
Steg 5) Sedan kan du anropa funktionen display_message() frรฅn test.py inuti display.py. Du behรถver anvรคnda module_name.function_name.
Till exempel test.display_message().
Import test
print(test.display_message())
Steg 6) Nรคr du kรถr display.py fรฅr du fรถljande Produktion:
Welcome to Guru99 Tutorials!
Importera en klass i Python
Tidigare har vi sett en enkel modul med en funktion. Hรคr kommer vi att skapa en klass och referera till klassen i en annan fil.
Mappstrukturen fรถr att testa koden รคr fรถljande:
myproj/ Car.py display.py
Skapa en fil som heter Car.py med fรถljande kod:
Filnamn: 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 finns attributen brand_name, model och manu_year. Funktionerna som definieras inuti klassen รคr car_details(), get_Car_brand(), get_Car_model().
Lรฅt oss nu anvรคnda filen Car.py som en modul i en annan fil som heter display.py.
Filnamn: 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())
Produktion:
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 komma รฅt alla variabler och funktioner frรฅn Car.py med hjรคlp av Car-modulen.
Anvรคnder frรฅn till importmodul
Du kan bara importera en liten del av modulen, dvs. bara de nรถdvรคndiga funktionerna och variabelnamnen frรฅn modulen istรคllet fรถr att importera hela koden.
Nรคr du bara vill importera specifika saker kan du anvรคnda nyckelordet "frรฅn" fรถr att importera det du vill.
Sรฅ syntaxen รคr
from module import your function_name , variables,... etc.
Mappstrukturen som anvรคnds fรถr att testa koden รคr fรถljande:
modtest/ test.py display.py
I test.py finns det tvรฅ funktioner som visas:
Filnamn: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nu vill du ha funktionen display_message(). Funktionen eller variabeln som du importerar kan nรฅs direkt enligt nedan:
Filnamn: display.py
from test import display_message print(display_message())
Produktion:
Welcome to Guru99 Tutorials!
Om du nu rรฅkar anvรคnda funktionen display_message1(), kommer den att ge ett felmeddelande om att funktionen inte รคr definierad enligt nedan:
from test import display_message print(display_message1())
Produktion:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Importerar allt frรฅn modulen
Med Import kan du importera hela modulen genom att anvรคnda import fรถljt av modulnamnet, dvs. filnamnet eller biblioteket som ska anvรคndas.
Syntax:
Import module
Eller genom att anvรคnda
from module import *
Mappstrukturen som anvรคnds fรถr att testa koden รคr fรถljande:
modtest/ test.py display.py
Fรถljande รคr koddetaljerna inuti test.py
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Anvรคnder importmodulen
Genom att bara anvรคnda importmodulens namn, fรถr att referera till variabler och funktioner inuti modulen, mรฅste du prefixa dem med modulnamnet.
Exempelvis
Filnamn: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Modulnamnet test anvรคnds fรถr att referera till funktionerna och variablerna i modultestet.
Produktion:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Anvรคnder import *
Lรฅt oss se ett exempel med hjรคlp av importera *, Anvรคnda importera *, รคr funktionerna och variablerna direkt tillgรคngliga, som visas i exemplet nedan:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Produktion:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Funktionen dir( ).
dir() รคr en inbyggd funktion i Pythondir() returnerar alla egenskaper och metoder, inklusive det givna objektets inbyggda egenskaper.
Sรฅ nรคr dir() anvรคnds pรฅ modulen, kommer den att ge dig de variabler och funktioner som finns inuti modulen.
Hรคr รคr ett fungerande exempel pรฅ dir() pรฅ en modul. Vi har en klass som heter Car.py, lรฅt oss importera Car och tilldela den till dir() fรถr att se utdata.
Mappstrukturen fรถr att testa koden kommer att vara fรถljande:
test prop/ Car.py test.py
Filnamn: 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)
Filnamn: test.py
import Car class_contents = dir(Car) print(class_contents)
Utdatan ger oss namnet pรฅ klassen och alla funktioner definierade i Car.py.
Du kan ocksรฅ prova att anvรคnda dir() pรฅ en inbyggd modul tillgรคnglig i PythonLรฅt oss fรถrsรถka detsamma pรฅ json modulen som visas i exemplet nedan. Den visar alla egenskaper och metoder som finns tillgรคngliga i json modul.
Import json
json_details = dir(json)
print(json_details)
Produktion:
['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']
Paket
Ett paket รคr en katalog med alla moduler definierade i den. Att gรถra en Python Om tolken behandlar det som ett paket, bรถr din katalog innehรฅlla filen __init__.py. __init__.py gรถr katalogen till ett paket. Hรคr รคr layouten fรถr paketet som vi ska arbeta med.
Namnet pรฅ paketet รคr mittpaketFรถr att bรถrja arbeta med paketet, skapa en katalog som heter mypackage/. Inuti katalogen skapar du en tom fil som heter __init__.py. Skapa ytterligare 3 filer module1.py, module2.py och module3.py och definiera funktionerna som visas pรฅ skรคrmbilden. Hรคr รคr detaljerna fรถr module1.py, module2.py och module3.py.
module1.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")
module2.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")
module3.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-landskapet paket รคr redo att anvรคndas. Anropa nu paketet i nรฅgon av dina filer som visas nedan i test.py:
Hรคr importeras mypackage.module1 och fรฅr ett aliasnamn som lรคge1Pรฅ samma sรคtt kan du anvรคnda de andra modulerna module2.py och module3.py frรฅn mypackage.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Produktion:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Vi har just demonstrerat paketet med en enkel modul med funktioner inuti. Beroende pรฅ ditt projekt kan du ocksรฅ skapa paket som har underpaket, dvs. undermappar som innehรฅller moduler med definierade klasser.
Python Sรถkvรคg fรถr modul
Under utfรถrandet, nรคr Python stรถter pรฅ importmodulens namn, fรถrsรถker tolken hitta modulen. Den sรถker efter modulen i den inbyggda modulistan och sedan i alla kataloger som definierats inuti sys.path.
Sammanfattningsvis gรถr tolken fรถljande sรถkning fรถr att hitta modulen:
- I din nuvarande katalog.
- I den inbyggda modulens lista.
- Inuti sys.path-katalogerna.
Du kan fรฅ information om sys.path genom att importera sys-modulen och skriva ut sys.path. Det ger dig en lista รถver kataloger som visas nedan:
importsys
print(sys.path)
Produktion:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Du kan ocksรฅ รคndra sรถkvรคgen och behรฅlla katalogerna enligt dina krav.
Anvรคnder modulalias i importen
Du kan ocksรฅ konvertera modulnamnet till en kortare form genom att ge det ett aliasnamn. Aliaset kan skapas med hjรคlp av as nyckelord.
Syntax:
import filename as alias name
Mappstrukturen fรถr att testa koden kommer att vara fรถljande:
Mod test/ test.py display.py
Fรถljande รคr koden inuti test.py
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nu ska vi anvรคnda ett alias fรถr 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 anvรคnds fรถr testmodulen รคr t. Sรฅ funktionerna och variablerna frรฅn test.py kan refereras till med hjรคlp av aliaset t.
Produktion:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Absolut och relativ import i Python
Du vet nu hur man importerar en fil som en modul i en annan fil. Lรฅt oss nu se hur man hanterar de tillgรคngliga filerna i mappar. Filerna i mapparna kan importeras antingen genom att anvรคnda absolut eller relativ import.
Tรคnk pรฅ att du har din projektmappstruktur, som visas nedan:
Rotmappen รคr myproject/. Den har tvรฅ undermappar, paket1 och paket2.
Mappen package1 har tvรฅ moduler, module1.py och module2.py.
Mappen paket2 har en klass myclass.py, ett underpaket subpkg med modul3.py och sista modul4.py.
- I module1.py finns en funktion som heter myfunc1.
- I module2.py finns en funktion som heter myfunc2.
- I module3.py finns en funktion som heter myfunc3.
- I module4.py finns en funktion som heter myfunc4.
Anvรคnder absolut import
Fรถr absoluta importer mรฅste du lรคgga till hela sรถkvรคgen till din modul direkt frรฅn projektets rotmapp.
Lรฅt oss nu se hur man anvรคnder absoluta importer fรถr att referera till de funktioner som finns i var och en av modulerna.
Fรถr att arbeta med funktionen myfunc1 mรฅste du importera den enligt fรถljande:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
Fรถr att arbeta med funktionen myfunc3 mรฅste du importera den enligt fรถljande:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Fรถr- och nackdelar med att anvรคnda absolut import
Hรคr รคr fรถrdelarna med att anvรคnda absolut import:
- Det blir lรคtt att tracSรคtt tillbaka modulerna fรถr kodkontroll.
- Lรคtt att anvรคnda och vรคldigt okomplicerad.
- Om projektet flyttas till en annan sรถkvรคg kommer importerna fortfarande att fรถrbli desamma.
Nackdelar med att anvรคnda absolut import
Hรคr รคr nackdelarna med att anvรคnda absoluta importer:
- Importsรถkvรคgen kan bli mycket lรฅng om modulerna รคr kapslade och modulnamnen รคr lรฅnga.
Anvรคnda relativ import
Med tanke pรฅ samma mappstruktur som nรคmnts ovan, kommer vi att se hur man importerar densamma med hjรคlp av relativ import.
I en relativ import รคr modulen som ska importeras relativ till den aktuella platsen, det vill sรคga den plats dรคr import-satsen finns.
syntax
Vid relativ import mรฅste du lรคgga till en punkt (.) fรถre modulnamnet nรคr du importerar med frรฅn.
Det kommer att stรฅ tvรฅ punkter (..) fรถre modulnamnet om modulen รคr en nivรฅ hรถgre upp frรฅn den aktuella platsen.
Med hรคnvisning till mappstrukturfiguren som nรคmns ovan har vi fรถljande moduler med deras funktioner, som vi behรถver referera till.
- I module1.py finns en funktion som heter myfunc1.
- I module2.py finns en funktion som heter myfunc2.
- I module3.py finns en funktion som heter myfunc3.
- I module4.py finns en funktion som heter myfunc4.
Fรถr att arbeta med funktionen myfunc1 mรฅste du importera den enligt fรถljande:
from .module1 import myfunc1
Fรถr att arbeta med funktionen myfunc3 mรฅste du importera den enligt fรถljande:
from .subpkg.module3 import myfunc3
Fรถrdelar med relativ import
- Det รคr lรคtt att arbeta med relativ import.
- Frรฅn den nuvarande platsen kan importen fรถrkortas i jรคmfรถrelse med absolut import.
Nackdelar med relativ import
- Med relativ import รคr det svรฅrt att tractillbaka dรคr koden finns.



