Pythoni moodulid: õppige kohandatud ja sisseehitatud mooduleid looma ja importima

Selles artiklis õpitakse Pythonis kohandatud mooduleid looma ja importima. Lisaks leiate Pythonis kohandatud ja sisseehitatud moodulite importimiseks ja kasutamiseks erinevaid tehnikaid.

Video: Pythoni moodulid

Mis on Pythoni moodulid?

Moodulid viitavad failile, mis sisaldab Pythoni lauseid ja definitsioone.

Faili, mis sisaldab näiteks Pythoni koodi, example.pynimetatakse mooduliks ja selle mooduli nimi oleks example.

Moodulite abil jagame suured programmid väikesteks hallatavateks ja korrastatud failideks. Lisaks pakuvad moodulid koodi korduvkasutatavust.

Võime määratleda oma kõige sagedamini kasutatavad funktsioonid moodulis ja importida selle asemel, et kopeerida nende definitsioonid erinevatesse programmidesse.

Loogem moodul. Sisestage järgmine ja salvestage see nimega example.py.

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

Siin oleme määranud funktsiooni add()mooduli sees nimega example. Funktsioon võtab sisse kaks arvu ja tagastab nende summa.

Kuidas mooduleid Pythoni importida?

Saame importida definitsioone mooduli sees teise moodulisse või Pythoni interaktiivsesse tõlki.

Selleks kasutame importmärksõna. Varem määratletud mooduli importimiseks examplesisestame Pythoni viipasse järgmise.

 >>> import example

See ei impordi funktsioonide nimesid, mis on määratletud exampleotse praeguses sümbolitabelis. See impordib examplesinna ainult mooduli nime .

Mooduli nime kasutades pääseme funktsioonile punktioperaatori abil .. Näiteks:

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

Pythonil on tonne standardmooduleid. Saate vaadata Pythoni standardmoodulite täielikku loendit ja nende kasutamise juhtumeid. Need failid asuvad kataloogis Lib asukohas, kuhu installisite Pythoni.

Standardmooduleid saab importida samamoodi nagu meie enda määratletud mooduleid.

Moodulite importimiseks on mitu võimalust. Need on loetletud allpool …

Pythoni impordilause

Me võime mooduli importida importlause abil ja pääseda selle sees olevate definitsioonide juurde, kasutades punktioperaatorit, nagu eespool kirjeldatud. Siin on näide.

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

Programmi käivitamisel on väljund järgmine:

 Pi väärtus on 3,141592653589793

Import koos ümbernimetamisega

Mooduli saab importida, nimetades selle ümber järgmiselt:

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

Oleme mathmooduli ümber nimetanud m. See võib mõnel juhul säästa meid tippimisajast.

Pange tähele, et seda nime mathmeie tegevusvaldkonnas ei tunnustata. Seega math.pion kehtetu ja m.piõige rakendamine.

Pythoni impordi avaldus

Konkreetsed nimed saame moodulist importida ilma moodulit tervikuna importimata. Siin on näide.

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

Siin importisime moodulist ainult piatribuudi math.

Sellistel juhtudel ei kasuta me punktoperaatorit. Saame importida ka mitu atribuuti järgmiselt:

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

Importige kõik nimed

Kõiki nimesid (definitsioone) saab moodulist importida järgmise konstruktsiooni abil:

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

Siin oleme importinud kõik definitsioonid matemaatika moodulist. See hõlmab kõiki meie reguleerimisalas nähtavaid nimesid, välja arvatud alakriipsuga algavad nimed (privaatsed definitsioonid).

Tärni (*) sümboliga kõige importimine ei ole hea programmeerimistava. See võib viia identifikaatori definitsioonide duplikaadini. See takistab ka meie koodi loetavust.

Pythoni mooduli otsingu tee

Mooduli importimisel vaatab Python mitut kohta. Tõlk otsib kõigepealt sisseehitatud moodulit. Seejärel (kui sisseehitatud moodulit ei leitud) otsib Python kataloogis määratletud kataloogide loendit sys.path. Otsing on selles järjekorras.

  • Praegune kataloog.
  • PYTHONPATH (keskkonnamuutuja kataloogide loendiga).
  • Installist sõltuv vaikekataloog.
 >>> importige sys >>> sys.path ('', 'C: \ Python33 \ Lib \ idlelib', 'C: \ Windows \ system32 \ python33.zip', 'C: \ Python33 \ DLL-id ',' C: \ Python33 \ lib ',' C: \ Python33 ',' C: \ Python33 \ lib \ saidipaketid ')

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

dir()Funktsiooni abil saame teada mooduli sees määratletud nimed.

Näiteks oleme add()moodulis määratlenud funktsiooni , examplemis meil alguses oli.

Saame kasutada dirka examplemoodul järgmisel viisil:

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

Siin näeme järjestatud nimede loendit (koos add). Kõik muud nimed, mis algavad alakriipsuga, on mooduliga seotud Pythoni vaikeatribuudid (mitte kasutaja määratletud).

Näiteks __name__sisaldab atribuut mooduli nime.

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

Kõik meie praeguses nimeruumis määratletud nimed saab dir()funktsiooni abil teada ilma argumentideta.

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

Huvitavad Artiklid...