Importera modul in Python med exempel
Vad รคr modulerna i Python?
En modul รคr en fil med pythonkod. Koden kan vara i form av variabler, funktioner eller klassdefinierade. 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 python. Fรถr att anvรคnda modulen mรฅste du importera den med hjรคlp av importen nyckelord. Funktionen 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 typskript, JavaScript, java, ruby, etc.
Hur man skapar och importerar en modul i Python?
Nu ska vi skapa en modul och importera den i en annan fil.
Hรคr รคr flรถdet fรถr att skapa och importera modulen som visas pรฅ skรคrmdumpen:
Fรถlj stegen 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 namnge den 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) Inside display.py importera moduletest.py-filen, som visas nedan:
import test
Nรคr du importerar behรถver du inte nรคmna test.py utan bara namnet pรฅ filen.
Steg 5) Sedan kan du anropa funktionen display_message() frรฅn test.py inuti display.py, du mรฅste anvรคnda modulnamn.funktionsnamn.
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 att skapa en klass och hรคnvisa klassen till en annan fil.
Mappstrukturen fรถr att testa koden รคr som fรถljer:
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 i 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 bilmodulen.
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 fullstรคndig kod.
Nรคr du vill att endast specifika saker ska importeras kan du anvรคnda nyckelordet "frรฅn" fรถr att importera det du vill ha.
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 2 funktioner som visas:
Filnamn: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Nu vill du ha display_message() funktion. 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 det att ge ett felmeddelande om att funktionen inte รคr definierad som visas 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
Import lรฅter dig importera hela modulen genom att anvรคnda import fรถljt av modulnamn, 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 importera modulnamn, fรถr att referera till variablerna och funktionerna inuti modulen, mรฅste den prefixa med modulnamn.
Exempelvis
Filnamn: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Modulnamnstestet anvรคnds fรถr att referera till funktionen 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 python. Dir() returnerar alla egenskaper och metoder, inklusive det givna objektets inbyggda egenskaper.
Sรฅ nรคr dir() anvรคnds pรฅ modulen kommer det att ge dig variablerna, 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 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 Python. Lรฅt oss prova samma sak json modul som visas i exemplet nedan. Det kommer att visa 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 tolk behandla det som ett paket, din katalog bรถr ha init.pyfile. Init.py gรถr katalogen som ett paket. Hรคr รคr layouten pรฅ paketet som vi ska arbeta med.
Namnet pรฅ paketet รคr mitt paket. Fรถr att bรถrja arbeta med paketet, skapa en katalog som heter package/. 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รคrmdumpen. Hรคr รคr informationen om modul1.py, modul2.py och modul3.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. Ring nu paketet inuti nรฅgon av dina filer som visas nedan :test.py:
Hรคr importeras mypackage.module1 och fรฅr ett aliasnamn som mod1. Pรฅ samma sรคtt kan du anvรคnda andra moduler module2.py och module3.py frรฅn mitt paket.
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 precis demonstrerat paketet med en enkel modul med funktioner inuti. Enligt ditt projekt kan du ocksรฅ paketera med underpaket. Undermappar/ med moduler med definierade klasser.
Python Sรถkvรคg fรถr modul
Under utfรถrande, nรคr python stรถter pรฅ importmodulens namn, fรถrsรถker tolken hitta modulen. Den sรถker igenom modulen i den inbyggda modullistan. Later totalt sett katalogerna definierade i sys.path.
Sammanfattningsvis gรถr tolken fรถljande sรถkning fรถr att hitta modulen:
- I din nuvarande katalog.
- In i listan รถver inbyggda moduler
- Inuti sys.path-katalogerna
Du kan fรฅ information om sys.path genom att importera sys-modulen och skriva ut sys.path. Det kommer att ge dig listan รถ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 alias. Aliaset kan gรถras med hjรคlp av nyckelordet.
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 kommer att 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รฅ funktionen och variablerna frรฅn test.py kan refereras med 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 mitt projekt/. Den har tvรฅ undermappar paket1 och paket2.
Mapppaketet1 har tvรฅ moduler, modul1.py och modul2.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 hetermyfunc1.
- 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 absolut import 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 absolut import fรถr att referera till funktionerna som finns i varje modul.
Fรถr att arbeta med functionmyfunc1 mรฅste du importera 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 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 spรฅra tillbaka modulerna fรถr kodkontroll.
- Lรคtt att anvรคnda och vรคldigt okomplicerad.
- Om projektet flyttas till en annan vรคg kommer importen fortfarande att fรถrbli densamma.
Nackdelar med att anvรคnda absolut import
Hรคr รคr nackdelarna med att anvรคnda absolut import:
Nackdelar:
- Importsรถkvรคgen kan bli vรคldigt lรฅng om modulerna รคr kapslade och om namnet pรฅ modulerna รคr lรฅngt.
Anvรคnda relativ import
Med tanke pรฅ samma mappstruktur som nรคmns nedan kommer vi att se hur man importerar densamma med relativa importer.
Vid relativ import รคr modulen som ska importeras relativ till den aktuella platsen som รคr platsen dรคr importsatsen 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 vara 2 punkter (..) fรถre modulnamnet om modulen รคr pรฅ en nivรฅ upp frรฅn den aktuella platsen.
Med hรคnvisning till mappstrukturen som nรคmns ovan, har vi fรถljande moduler med deras funktion, som vi mรฅste hรคnvisa till.
- I module1.py finns en funktion som hetermyfunc1.
- 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 functionmyfunc1 mรฅste du importera enligt fรถljande:
from .module1 import myfunc1
Fรถr att arbeta med funktionen myfunc3 mรฅste du importera enligt fรถljande:
from .subpkg.module3 import myfunc3
Fรถrdelar med relativ import
fรถrdelar:
- 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
Nackdelar:
- Med hjรคlp av relativ import รคr det svรฅrt att spรฅra tillbaka var koden finns
Sammanfattning
- Importera in Python hjรคlper dig att referera till koden, dvs .funktioner/objekt som รคr skrivna i en annan fil. Det anvรคnds ocksรฅ fรถr att importera pythonbibliotek/paket som รคr installerade med pip(python package manager), och du mรฅste sedan anvรคnda i din kod.
- Importfunktionalitet รคr tillgรคnglig pรฅ andra sprรฅk som typskript, JavaScript, java, ruby, etc.
- En modul รคr python รคr koden skriven inuti filen, till exempel (test.py). Inuti din fil kan du ha dina variabler, funktioner eller din klass definierade. Hela filen blir en modul och kan importeras in i en annan fil fรถr att referera till koden.
- Med modulfunktionalitet kan du dela upp din kod i olika filer istรคllet fรถr att skriva allt i en fil. Later, med import kan du referera till koden i filen du behรถver.
- Python har sina inbyggda moduler, och รคven externa bibliotek/paket installerade med en python pakethanterare (pip), t.ex. pandor, NumPy, etc. kallas moduler.
- Du kan bara importera en liten del av modulen, dvs endast de nรถdvรคndiga funktionerna och variabelnamnen frรฅn modulen istรคllet fรถr att importera fullstรคndig kod.
- Du kan ocksรฅ konvertera modulnamnet till en kortare form genom att ge det ett alias. Aliaset kan gรถras med hjรคlp av nyckelordet.
- Ett paket รคr en katalog med alla moduler definierade i den. Att gรถra en Python tolk behandla det som ett paket, din katalog bรถr ha filen __init.py. Init.py gรถr katalogen som ett paket. Hรคr รคr layouten pรฅ paketet som vi ska arbeta med.
- Under utfรถrande, nรคr python stรถter pรฅ importmodulens namn, fรถrsรถker tolken hitta modulen. Den sรถker igenom modulen i den inbyggda modullistan. Later totalt sett katalogerna definierade i sys.path.
- Fรถr absolut import mรฅste du lรคgga till hela sรถkvรคgen till din modul direkt frรฅn projektets rotmapp.
- Vid relativ import รคr modulen som ska importeras relativ till den aktuella platsen som รคr platsen dรคr importsatsen finns.



