Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python-modules

Python-modules

In dit artikel leer je om aangepaste modules in Python te maken en te importeren. Ook vindt u verschillende technieken om aangepaste en ingebouwde modules in Python te importeren en te gebruiken.

Video:Python-modules

Wat zijn modules in Python?

Modules verwijzen naar een bestand dat Python-statements en -definities bevat.

Een bestand met Python-code, bijvoorbeeld:example.py , wordt een module genoemd en de modulenaam zou example . zijn .

We gebruiken modules om grote programma's op te splitsen in kleine overzichtelijke en overzichtelijke bestanden. Bovendien bieden modules herbruikbaarheid van code.

We kunnen onze meest gebruikte functies in een module definiëren en importeren, in plaats van hun definities naar verschillende programma's te kopiëren.

Laten we een module maken. Typ het volgende en sla het op als example.py .

# Python Module example

def add(a, b):
   """This program adds two
   numbers and return the result"""

   result = a + b
   return result

Hier hebben we een functie gedefinieerd add() in een module met de naam example . De functie neemt twee getallen in en geeft hun som terug.


Hoe modules in Python te importeren?

We kunnen de definities in een module importeren in een andere module of de interactieve interpreter in Python.

We gebruiken de import trefwoord om dit te doen. Om onze eerder gedefinieerde module example te importeren , typen we het volgende in de Python-prompt.

>>> import example

Dit importeert niet de namen van de functies gedefinieerd in example direct in de huidige symbooltabel. Het importeert alleen de modulenaam example daar.

Met behulp van de modulenaam hebben we toegang tot de functie met behulp van de punt . exploitant. Bijvoorbeeld:

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

Python heeft tonnen standaardmodules. U kunt de volledige lijst met Python-standaardmodules en hun gebruiksscenario's bekijken. Deze bestanden bevinden zich in de Lib-map op de locatie waar u Python hebt geïnstalleerd.

Standaardmodules kunnen op dezelfde manier worden geïmporteerd als onze door de gebruiker gedefinieerde modules.

Er zijn verschillende manieren om modules te importeren. Ze staan ​​hieronder vermeld..


Python-importstatement

We kunnen een module importeren met behulp van de import statement en krijg toegang tot de definities erin met behulp van de puntoperator zoals hierboven beschreven. Hier is een voorbeeld.

# import statement example
# to import standard module math

import math
print("The value of pi is", math.pi)

Wanneer u het programma uitvoert, is de uitvoer:

The value of pi is 3.141592653589793

Importeren met hernoemen

We kunnen een module importeren door deze als volgt te hernoemen:

# import module by renaming it

import math as m
print("The value of pi is", m.pi)

We hebben de math . hernoemd module als m . Dit kan ons in sommige gevallen tijd besparen bij het typen.

Merk op dat de naam math wordt niet erkend in onze scope. Vandaar, math.pi is ongeldig, en m.pi is de juiste implementatie.


Python van...import-instructie

We kunnen specifieke namen uit een module importeren zonder de module als geheel te importeren. Hier is een voorbeeld.

# import only pi from math module

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

Hier hebben we alleen de pi . geïmporteerd attribuut van de math module.

In dergelijke gevallen gebruiken we de puntoperator niet. We kunnen ook als volgt meerdere attributen importeren:

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

Alle namen importeren

We kunnen alle namen (definities) uit een module importeren met de volgende constructie:

# import all names from the standard module math

from math import *
print("The value of pi is", pi)

Hier hebben we alle definities uit de wiskundemodule geïmporteerd. Dit omvat alle namen die zichtbaar zijn in ons bereik, behalve de namen die beginnen met een onderstrepingsteken (privédefinities).

Alles importeren met het asterisk (*)-symbool is geen goede programmeerpraktijk. Dit kan leiden tot dubbele definities voor een identifier. Het belemmert ook de leesbaarheid van onze code.


Tijdens het importeren van een module kijkt Python naar verschillende plekken. Interpreter zoekt eerst naar een ingebouwde module. Dan (indien ingebouwde module niet gevonden), kijkt Python in een lijst met mappen gedefinieerd in sys.path . De zoekopdracht is in deze volgorde.

  • De huidige map.
  • PYTHONPATH (een omgevingsvariabele met een lijst met mappen).
  • De installatieafhankelijke standaardmap.
>>> import sys
>>> sys.path
['',
'C:\\Python33\\Lib\\idlelib',
'C:\\Windows\\system32\\python33.zip',
'C:\\Python33\\DLLs',
'C:\\Python33\\lib',
'C:\\Python33',
'C:\\Python33\\lib\\site-packages']

We kunnen deze lijst toevoegen en wijzigen om ons eigen pad toe te voegen.


Een module opnieuw laden

De Python-interpreter importeert een module slechts één keer tijdens een sessie. Dit maakt de zaken efficiënter. Hier is een voorbeeld om te laten zien hoe dit werkt.

Stel dat we de volgende code hebben in een module met de naam my_module .

# This module shows the effect of
#  multiple imports and reload

print("This code got executed")

Nu zien we het effect van meerdere importen.

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

We kunnen zien dat onze code maar één keer is uitgevoerd. Dit wil zeggen dat onze module maar één keer is geïmporteerd.

Als onze module in de loop van het programma zou veranderen, zouden we hem opnieuw moeten laden. Een manier om dit te doen is door de interpreter opnieuw te starten. Maar dit helpt niet veel.

Python biedt een efficiëntere manier om dit te doen. We kunnen de reload() . gebruiken functie binnen de imp module om een ​​module opnieuw te laden. We kunnen het op de volgende manieren doen:

>>> import imp
>>> import my_module
This code got executed
>>> import my_module
>>> imp.reload(my_module)
This code got executed
<module 'my_module' from '.\\my_module.py'>

De ingebouwde dir()-functie

We kunnen de dir() . gebruiken functie om namen te vinden die in een module zijn gedefinieerd.

We hebben bijvoorbeeld een functie add() . gedefinieerd in de module example die we in het begin hadden.

We kunnen dir . gebruiken in example module op de volgende manier:

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

Hier kunnen we een gesorteerde lijst met namen zien (samen met add ). Alle andere namen die beginnen met een onderstrepingsteken zijn standaard Python-attributen die aan de module zijn gekoppeld (niet door de gebruiker gedefinieerd).

Bijvoorbeeld de __name__ attribuut bevat de naam van de module.

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

Alle namen die in onze huidige naamruimte zijn gedefinieerd, kunnen worden gevonden met behulp van de dir() functie zonder argumenten.

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

Python

  1. Python-gegevenstypen
  2. Python invoer, uitvoer en import
  3. Python-operators
  4. Python-functieargumenten
  5. Python-modules
  6. Python-woordenboek
  7. Python-iterators
  8. Python-sluitingen
  9. Python datetime
  10. Python-tijdmodule
  11. Python-slaap()