Python moduļi: iemācieties izveidot un importēt pielāgotus un iebūvētus moduļus

Šajā rakstā jūs iemācīsities izveidot un importēt pielāgotus moduļus Python. Turklāt jūs atradīsit dažādas metodes, kā importēt un izmantot pielāgotus un iebūvētus moduļus Python.

Video: Python moduļi

Kas ir moduļi Python?

Moduļi attiecas uz failu, kurā ir Python priekšraksti un definīcijas.

Fails, kas satur Python kodu, piemēram:, example.pytiek saukts par moduli, un tā moduļa nosaukums būtu example.

Mēs izmantojam moduļus, lai sadalītu lielas programmas mazos pārvaldāmos un organizētos failos. Turklāt moduļi nodrošina koda atkārtotu izmantošanu.

Mēs varam definēt mūsu visbiežāk izmantotās funkcijas modulī un importēt, nevis kopēt to definīcijas dažādās programmās.

Izveidosim moduli. Ierakstiet šo un saglabājiet to kā example.py.

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

Šeit mēs esam definējuši funkciju add()moduļa iekšpusē ar nosaukumu example. Funkcija uzņem divus skaitļus un atgriež to summu.

Kā importēt moduļus Python?

Mēs varam importēt definīcijas moduļa iekšienē uz citu moduli vai interaktīvo tulku Python.

importLai to izdarītu, mēs izmantojam atslēgvārdu. Lai importētu mūsu iepriekš definēto moduli example, Python uzvednē ierakstām šo.

 >>> import example

Tas neimportē funkciju nosaukumus, kas definēti exampletieši pašreizējā simbolu tabulā. Tas exampletur importē tikai moduļa nosaukumu .

Izmantojot moduļa nosaukumu, mēs varam piekļūt funkcijai, izmantojot punktu .operatoru. Piemēram:

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

Python ir daudz standarta moduļu. Jūs varat apskatīt pilnu Python standarta moduļu sarakstu un to izmantošanas gadījumus. Šie faili atrodas Lib direktorijā vietā, kur instalējāt Python.

Standarta moduļus var importēt tāpat kā mēs importējam lietotāja definētos moduļus.

Ir dažādi veidi, kā importēt moduļus. Tie ir uzskaitīti zemāk …

Python importēšanas paziņojums

Mēs varam importēt moduli, izmantojot importpriekšrakstu, un piekļūt definīcijām tajā, izmantojot punktu operatoru, kā aprakstīts iepriekš. Šeit ir piemērs.

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

Palaidot programmu, izeja būs:

 Pī vērtība ir 3,141592653589793

Importēt ar pārdēvēšanu

Mēs varam importēt moduli, pārdēvējot to šādi:

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

Mēs esam pārdēvējuši mathmoduli kā m. Dažos gadījumos tas var ietaupīt rakstīšanas laiku.

Ņemiet vērā, ka nosaukums mathnav atzīts mūsu darbības jomā. Tādējādi math.pinav derīga un m.piir pareiza ieviešana.

Python from … importa paziņojums

Mēs varam importēt konkrētus nosaukumus no moduļa, neimportējot moduli kopumā. Šeit ir piemērs.

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

Šeit mēs importējām tikai moduļa piatribūtu math.

Šādos gadījumos mēs neizmantojam punktu operatoru. Mēs varam importēt arī vairākus atribūtus šādi:

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

Importēt visus vārdus

Mēs varam importēt visus nosaukumus (definīcijas) no moduļa, izmantojot šādu konstrukciju:

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

Šeit mēs esam importējuši visas definīcijas no matemātikas moduļa. Tas ietver visus mūsu darbības sfērā redzamos vārdus, izņemot tos, kas sākas ar pasvītrojumu (privātās definīcijas).

Importēt visu ar zvaigznīti (*) nav laba programmēšanas prakse. Tas var izraisīt identifikatora definīciju dublikātus. Tas arī kavē mūsu koda lasāmību.

Python moduļu meklēšanas ceļš

Importējot moduli, Python aplūko vairākas vietas. Tulks vispirms meklē iebūvētu moduli. Tad (ja iebūvētais modulis nav atrasts), Python izskata direktoriju sarakstu, kas definēts sys.path. Meklēšana notiek šādā secībā.

  • Pašreizējais direktorijs.
  • PYTHONPATH (vides mainīgais ar direktoriju sarakstu).
  • No instalācijas atkarīgs noklusējuma direktorijs.
 >>> importējiet sys >>> sys.path ('', 'C: \ Python33 \ Lib \ idlelib', 'C: \ Windows \ system32 \ python33.zip', 'C: \ Python33 \ DLLs "," C: Python33 lib "," C: Python33 "," C: Python33 lib "vietņu paketes")

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

Mēs varam izmantot dir()funkciju, lai uzzinātu nosaukumus, kas definēti moduļa iekšienē.

Piemēram, add()modulī esam definējuši funkciju , examplekas mums bija sākumā.

Mēs varam izmantot diršajā examplemodulī šādā veidā:

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

Šeit mēs varam redzēt sakārtotu vārdu sarakstu (kopā ar add). Visi pārējie nosaukumi, kas sākas ar pasvītrojumu, ir noklusējuma Python atribūti, kas saistīti ar moduli (nav lietotāja definēti).

Piemēram, __name__atribūtā ir moduļa nosaukums.

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

Visus mūsu pašreizējā nosaukumvietā definētos nosaukumus var uzzināt, izmantojot dir()funkciju bez jebkādiem argumentiem.

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

Interesanti raksti...