Python-moduulit: Opi luomaan ja tuomaan mukautettuja ja sisäänrakennettuja moduuleja

Tässä artikkelissa opit luomaan ja tuomaan mukautettuja moduuleja Pythonissa. Löydät myös erilaisia ​​tekniikoita mukautettujen ja sisäänrakennettujen moduulien tuontia ja käyttöä varten Pythonissa.

Video: Python-moduulit

Mitä moduulit ovat Pythonissa?

Moduulit viittaavat tiedostoon, joka sisältää Python-käskyt ja määritelmät.

Tiedostoa, joka sisältää esimerkiksi Python-koodin:, example.pykutsutaan moduuliksi, ja sen moduulin nimi olisi example.

Hajotamme suuria ohjelmia pieniksi hallittaviksi ja organisoiduiksi tiedostoiksi moduulien avulla. Lisäksi moduulit tarjoavat koodin uudelleenkäytettävyyden.

Voimme määritellä käytetyimmät toiminnot moduulissa ja tuoda sen sen sijaan, että kopioisimme niiden määritelmät eri ohjelmiin.

Luodaan moduuli. Kirjoita seuraava ja tallenna se nimellä example.py.

 # Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result

Tässä olemme määrittäneet funktion add()nimisen moduulin sisällä example. Funktio ottaa kaksi lukua ja palauttaa niiden summan.

Kuinka tuoda moduuleja Pythoniin?

Voimme tuoda määritelmät moduulin sisällä toiseen moduuliin tai interaktiiviseen tulkkiin Pythonissa.

Käytämme tätä importavainsanalla. Jos haluat tuoda aiemmin määritetyn moduulin example, kirjoita seuraava Python-kehotteeseen.

 >>> import example

Tämä ei tuo niiden funktioiden nimiä, jotka on määritetty examplesuoraan nykyisessä symbolitaulukossa. Se tuo vain moduulin nimen examplesinne.

Moduulin nimen avulla voimme käyttää toimintoa pisteoperaattorin avulla .. Esimerkiksi:

 >>> example.add(4,5.5) 9.5

Pythonissa on tonnia vakiomoduuleja. Voit tarkistaa täydellisen luettelon Python-vakiomoduuleista ja niiden käyttötapauksista. Nämä tiedostot ovat Lib-hakemistossa sen sijainnin sisällä, johon olet asentanut Pythonin.

Vakiomoduulit voidaan tuoda samalla tavalla kuin tuomme käyttäjän määrittelemät moduulit.

Moduuleja voidaan tuoda eri tavoin. Ne on lueteltu alla …

Python-tuontilauseke

Voimme tuoda moduulin importkäskyn avulla ja käyttää sen sisällä olevia määritelmiä yllä kuvatulla pisteoperaattorilla. Tässä on esimerkki.

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

Kun suoritat ohjelmaa, tulos on:

 Pi: n arvo on 3,141592653589793

Tuo uudelleennimeämisellä

Voimme tuoda moduulin nimeämällä sen uudelleen seuraavasti:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

Olemme nimenneet mathmoduulin uudelleen nimellä m. Tämä voi joissakin tapauksissa säästää kirjoittamisaikaa.

Huomaa, että nimeä mathei tunnisteta soveltamisalassamme. Siksi math.pion virheellinen ja m.pioikea toteutus.

Python from… -tuontilauseke

Voimme tuoda tiettyjä nimiä moduulista tuomatta moduulia kokonaisuutena. Tässä on esimerkki.

 # import only pi from math module from math import pi print("The value of pi is", pi)

Täällä tuotiin vain piattribuutti mathmoduulista.

Tällaisissa tapauksissa emme käytä pisteoperaattoria. Voimme tuoda myös useita määritteitä seuraavasti:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

Tuo kaikki nimet

Voimme tuoda kaikki nimet (määritelmät) moduulista seuraavan rakenteen avulla:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

Tässä olemme tuoneet kaikki määritelmät matematiikkamoduulista. Tämä sisältää kaikki soveltamisalassamme näkyvät nimet, paitsi alaviivalla alkavat nimet (yksityiset määritelmät).

Kaikkien tähtimerkillä (*) tuonti ei ole hyvä ohjelmointikäytäntö. Tämä voi johtaa päällekkäisiin määritelmiin tunnisteelle. Se haittaa myös koodimme luettavuutta.

Python-moduulin hakupolku

Tuodessaan moduulia Python tarkastelee useita paikkoja. Tulkki etsii ensin sisäänrakennettua moduulia. Sitten (jos sisäänrakennettua moduulia ei löydy), Python etsii luetteloa hakemistosta, joka on määritelty kohdassa sys.path. Haku on tässä järjestyksessä.

  • Nykyinen hakemisto.
  • PYTHONPATH (ympäristömuuttuja luetteloluettelolla).
  • Asennuksesta riippuva oletushakemisto.
 >>> tuo sys >>> sys.path ('', 'C: \ Python33 \ Lib idlelib', 'C: \ Windows \ system32 \ python33.zip', 'C: \ Python33 \ DLLs, 'C: \ Python33 \ lib', 'C: \ Python33', 'C: \ Python33 \ lib \ site-package')

We can add and modify this list to add our own path.

Reloading a module

The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.

Suppose we have the following code in a module named my_module.

 # This module shows the effect of # multiple imports and reload print("This code got executed")

Now we see the effect of multiple imports.

 >>> import my_module This code got executed >>> import my_module >>> import my_module

We can see that our code got executed only once. This goes to say that our module was imported only once.

Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.

Python provides a more efficient way of doing this. We can use the reload() function inside the imp module to reload a module. We can do it in the following ways:

 >>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed 

The dir() built-in function

Voimme käyttää dir()funktiota selvittämään moduulin sisällä määritetyt nimet.

Olemme esimerkiksi määrittäneet add()moduulissa toiminnon , examplejoka meillä oli alussa.

Voimme käyttää dirvuonna examplemoduulia seuraavasti:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

Täällä voimme nähdä lajiteltu luettelo nimistä (yhdessä add). Kaikki muut alaviivalla alkavat nimet ovat moduuliin liittyviä oletusarvoisia Python-määritteitä (ei käyttäjän määrittelemiä).

Esimerkiksi __name__attribuutti sisältää moduulin nimen.

 >>> import example >>> example.__name__ 'example'

Kaikki nykyisessä nimitilassa määritellyt nimet voidaan selvittää dir()funktion avulla ilman argumentteja.

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

Mielenkiintoisia artikkeleita...