armyati.pages.dev









Vad är en modul it

Moduler inom Python

Funktioner inom Python fullfölja därför för att oss förmå återanvända kod samt för att oss äger tillfälle för att sätta namn vid koden vilket oss önskar nyttja flera gånger.

Moduler används för att organisera kod på ett logiskt sätt och återanvända kod över flera projekt

Ibland önskar oss dela upp koden ännu mer på grund av för att enkelt behärska återanvända flera funktioner inom flera olika schema, detta kallas ibland kodbibliotek, inom python kallas detta moduler. oss bör inom denna övning titta vid hur oss kunna producera enstaka enhet samt samla funktioner inom den liksom oss importerar inom enstaka ytterligare Python-fil.

Vi fortsätter vid exemplet ifrån övningen Funktioner, argument samt returvärden således äger ni ej gjort den övningen att föreslå eller råda något oss för att ni fullfölja den först.

#Moduler

Moduler skapas oftast från numeriskt värde skäl.

ett från anledningarna existerar för att strukturera koden, oss samlar funktioner såsom existerar relaterade mot varandra inom enstaka enhet. Detta fullfölja för att dem blir enkel för att hitta samt arbeta tillsammans dem funktionerna. Den andra anledningen mot för att producera moduler existerar för att producera kodbibliotek. oss sparar funktioner liksom oss önskar återanvända inom andra arbete inom ett enhet.

Då slipper oss producera angående funktionerna samt istället behöver oss bara importera modulen även besitter oss passage mot dem. Den en anledningen utesluter dock ej den andra.

I slutet från övningen Funktioner, argument samt returvärden ser våra funktioner ut vid nästa sätt.

defcalculate_energy(time_in_microwave, effect=800):""" Calculates the energy consumption inom kWh Returns the consumption """ energy = effect * time_in_microwave / 1000return energy defcalculate_cost(energy, price_per_kwh=78.04):""" Calculates the cost for a given energy consumption Returns the cost in kr """ cost = energy * price_per_kwh / 100return cost

Dessa numeriskt värde funktioner hänger ihop samt besitter en kontext samt liksom dem strukturerade programmerare oss existerar tänker oss för att dessa är kapabel oss ju nyttja ett ytterligare gång.

Detta görs lättast inom Python genom för att producera enstaka enhet. oss skapar ett fräsch fil var oss endast lägger ovanstående numeriskt värde funktioner.

I ett ytterligare färsk fil skriver oss själva programmet. oss äger alltså idag våra funktioner inom ett fil samt själva programmet inom enstaka ytterligare.

Modulens uppgift är att förbättra återanvändningen av kod

på grund av för att oss bör behärska nyttja våra funktioner ifrån filen måste oss importera den filen in inom . Detta fullfölja oss genom för att nyttja . Notera för att oss skriver utan filändelse. oss besitter för tillfället resurser mot varenda funktioner oss besitter definierat inom . oss kommer åt funktionerna genom för att notera modulens namn följt från ett punkt samt sen funktionens namn, , detta kallas “dot notation”.

import energy_calculation emil_time = 2.5 / 60 emil_energy = energy_calculation.calculate_energy(emil_time) emil_cost = energy_calculation.calculate_cost(emil_energy) emil_string = "Emil använder {energy:.4f} kWh samt detta kostar {cost:.4f} kr".format( energy=emil_energy, cost=emil_cost ) print(emil_string)

En enhet existerar egentligen bara ett python fil tillsammans kod inom, därför varenda filer oss äger skapat än därför länge besitter varit moduler.

detta oss fullfölja för tillfället existerar egentligen bara för att lära oss hur oss kunna importera/använda funktioner ifrån andra filer/moduler.

#Byta namn vid moduler

Av olika skäl önskar man ibland nyttja en annat namn vid modulen inom koden, t.ex.

py, kommer modulnamnet att vara guru99

detta kunna existera långt alternativt detta linkar något annat. Då är kapabel man nyttja nyckelordet på grund av för att ändra namnet.


  • vad  existerar  ett  enhet it

  • oss kollar vid hur detta oss fullfölja på grund av för att byta namn vid “energy_calculation” mot “ec”.

    import energy_calculation as ec emil_time = 2.5 / 60 emil_energy = ec.calculate_energy(emil_time) emil_cost = ec.calculate_cost(emil_energy) emil_string = "Emil använder {energy:.4f} kWh samt detta kostar {cost:.4f} kr".format( energy=emil_energy, cost=emil_cost ) print(emil_string)

    Det plats ej svårare än därför, lägg mot inom slutet från ditt import statement.

    Då kunna oss nyttja detta nya namnet inom koden nedanför till för att referera mot den importerade modulen.

    #Inbyggda moduler samt importera specifika funktioner

    Python kommer skeppat tillsammans med en antal färdiga moduler liksom innehåller användbara funktioner. T.ex. modulen “math” såsom innehåller funktioner b.la.

    Vad är en modul? Jo, man kan säga att en modul är som en förbestämd kod som körs när du skriver koden för modulen

    på grund av avrundning från anförande samt mer sofistikerad aritmetik än plus, minus samt delat tillsammans med. Modulen “random” finns även, den innehåller funktioner såsom b.la. förmå slumpa fram anförande, vilket existerar väldigt god för att äga. Dessa moduler kunna innehålla väldigt flera olika funktioner samt ibland önskar oss möjligen bara komma åt ett bestämd, då existerar detta utmärkt för att man är kapabel importera specifika funktioner därför man ej får alla.
    på grund av för att utföra detta använder man sig från “from”, då specificerar oss modulen oss önskar plocka upp eller ta ifrån samt sen vilken funktionen oss önskar äga, .

    oss kollar vid en modell var oss importera enstaka funktion på grund av för att avrunda anförande ifrån “math”.

    from math import floor print(floor(3.14))

    Vi önskar även äga funktionen till för att avrunda anförande uppåt samt potens samt upphöjt. oss behöver ej producera ett färsk rad till detta utan oss är kapabel lägga mot varenda funktion oss önskar äga efter “floor”.

    oss kunna även denna plats byta namn vid funktionerna oss importerar tillsammans med “as”, oss provar byter namn vid “floor” mot “lower”.

    from math import floor as lower, ceil, pow print(lower(3.14)) print(ceil(3.14)) print(pow(5,2))

    #Exekvera moduler likt script

    Som jag nämnde förut existerar enstaka enhet egentligen bara enstaka fil tillsammans med kod.

    En modul är helt enkelt en fil som innehåller Python-kod

    Detta faktum fullfölja för att oss är kapabel exekvera den likt en eget schema. oss fortsätter tillsammans med energi exemplet samt lägger mot lite kod liksom oss tänker oss för att oss önskar nyttja på grund av för att testa för att funktionerna fungerar såsom dem ska.

    defcalculate_energy(time_in_microwave, effect=800):""" Calculates the energy consumption inom kWh Returns the consumption """ energy = effect * time_in_microwave / 1000return energy defcalculate_cost(energy, price_per_kwh=78.04):""" Calculates the cost for a given energy consumption Returns the cost in kr """ cost = energy * price_per_kwh / 100return cost print("Test från calculate energy:") print(calculate_energy(800))

    Vi exekverar filen liksom vanligt tillsammans med samt då skriver den ut .

    Detta önskar oss ej bör ske då oss importerar modulen. Då önskar oss enbart äga passage mot funktionerna, ej för att någon kod bör exekveras.

    Filnamnet blir modulnamnet

    Testa exekvera “main.py” till för att titta vilket likt skrivs ut.

    $python3 main.py Test från calculate energy: 640.0 Emil använder 0.0333 kWh samt detta kostar 0.0260 kr

    Nu görs utskriften ifrån “energy_calculation.py” ursprunglig inom programmet, detta existerar på grund av för att koden inom modulen exekveras direkt då den importeras.

    sålunda var önskar oss ej äga detta, oss önskar ännu bara titta “Emil använder…” utskriften. vilket tur existerar kunna oss att fatta beslut eller bestämma något inom koden angående filen/modulen exekveras såsom en eget schema alternativt ifall detta importeras liksom ett enhet. ifall filen importeras får variabeln värdet från vad filen heter dock angående filen exekveras likt eget schema får variabeln värdet .

    Testa för att lägga mot inom slutet från båda filerna samt exekvera dem.

    $python3 main.py Test från calculate energy: 640.0 name: energy_calculation Emil använder 0.0333 kWh samt detta kostar 0.0260 kr name: __main__ $python3 energy_calculation.py Test från calculate energy: 640.0 name: __main__

    När oss kör “main.py” skrivs “name: energy_calculation” ut ifrån modulen samt ifrån “main.py”.

    En modul består alltså av en bit text, precis som vilken typ av kod som helst i Python

    då oss exekverar “energy_calculation.py” skrivs ut. detta oss förmå utföra tillsammans med denna kunskapen existerar för att lägga mot ett if-sats inom slutet från “energy_calculation.py” vilket kollar ifall . ifall detta existerar sant vet oss för att filen exekveras liksom en eget schema samt ifall oss då lägger vår test kod inom if-sats blocket kommer den ej exekveras då filen blir importerad.

    defcalculate_energy(time_in_microwave, effect=800):""" Calculates the energy consumption inom kWh Returns the consumption """ energy = effect * time_in_microwave / 1000return energy defcalculate_cost(energy, price_per_kwh=78.04):""" Calculates the cost for a given energy consumption Returns the cost in kr """ cost = energy * price_per_kwh / 100return cost if __name__ == "__main__": print("Test från calculate energy:") print(calculate_energy(800)) print("name: " + __name__)

    Testa exekvera båda filerna igen samt lägg symbol mot för att detta ej längre blir några utskrifter ifrån “energy_calculation.py” då ni exekverar “main.py”.

    #if name == “main

    I förra stycket pratar oss angående för att nyttja på grund av för att testa moduler.

    oss kunna även nyttja detta på grund av för att granska vad likt bör ske ifall en schema blir importerat alternativt startat. Även inom vår “main.py” fil borde oss nyttja oss från , detta existerar ett utmärkt vana för att äga detta inom samtliga python filer man skapar.

    I “main.py” önskar oss nyttja detta till för att besluta vilket vilket sker då oss startar programmet.

    Koden oss redan äger inom “main.py” lägger oss inom enstaka färsk funktion samt sen anropar oss den inom blocket.

    import energy_calculation as ec defmain(): emil_time = 2.5 / 60 emil_energy = ec.calculate_energy(emil_time) emil_cost = ec.calculate_cost(emil_energy) emil_string = "Emil använder {energy:.4f} kWh samt detta kostar {cost:.4f} kr".format( energy=emil_energy, cost=emil_cost ) print(emil_string) if __name__ == "__main__": main()

    Det på denna plats existerar ej något oss måste utföra egentligen dock oss tar detta såsom vana för att arbeta vid detta sättet.

    Till exempel, om ditt filnamn är guru99

    oss önskar undvika för att äga “lös” kod, inom detta globala scopet. Fördelen tillsammans den nya strukturen existerar för att oss enkel kunna notera angående funktionen sålunda för att även den går för att återanvända samt importeras likt module inom en annat program.

    Det ända oss behöver utföra existerar för att lägga mot parametrarna samt inom funktionen samt byta ut samt tillsammans med dem nya parametrarna.

    import energy_calculation as ec defmain(name, time_minutes): time = time_minutes / 60 energy = ec.calculate_energy(time) cost = ec.calculate_cost(energy) string = "{name} använder {energy:.4f} kWh samt detta kostar {cost:.4f} kr".format( name=name energy=energy, cost=cost ) print(string) if __name__ == "__main__": main("emil", 2.5)

    Nu fungerar programmet likadant vilket förut fast detta går även för att importera detta likt enstaka modul.

    #Avslutningsvis

    Vi äger idag kreditkort introducerat moduler inom Python.

    Moduler existerar en sätt för att kategorisera samt dela upp kod till återanvändning samt en god arbetssätt då kvantiteten från kod växer alternativt ifall ni önskar nyttja identisk kod inom olika uppdrag. till dem vilket önskar känna till mer ifall moduler inom Python beskrivs moduler inom Python Tutorial Chapter 6 Modules.

    Alla kodexempel ifrån denna övningen finns inom kursrepot på grund av python-kursen samt denna plats vid dbwebb.

    Kodexemplet innehåller bota exemplet ifrån tidigare övningar, dock uppdelat inom modulen samt huvudprogrammet finns inom .

    #Revision history

    • 2018-06-19: (B, aar) Utökad inför python-v2.
    • 2017-06-02: (A, efo) inledande utgåvan inför kursen python H17.

    Document source.