Table of Contents
Fins ara hem vist que podem reusar codi als nostres programes mitjançant funcions. Però, què passa si volem tornar a fer servir a altres programes les funcions que hem definit? La resposta està en els mòduls. Un mòdul és bàsicament un fitxer que conté la definició de funcions i variables. Per a reusar-les a altres programes, el nom del fitxer que conté el mòdul necessàriament ha de tenir l'extensió .py
.
Un mòdul pot ser importat per un altre programa de manera que aquest programa pugui accedir a les funcionalitats que defineix el mòdul. Així és com fem servir la biblioteca estàndard de Python. Primer de tot, veiem com usar els mòduls de la biblioteca estàndard.
Example 8.1. Fent servir el mòdul sys
#!/usr/bin/python # Filename: using_sys.py import sys print 'Els arguments de la línia de comandes són:' for i in sys.argv: print i print '\n\nEl valor de PYTHONPATH és', sys.path, '\n'
$ python using_sys.py nosaltres som arguments Els arguments de la línia de comandes són: using_sys.py nosaltres som arguments El valor de PYTHONPATH és ['/home/swaroop/byte/code', '/usr/lib/python23.zip', '/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2', '/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload', '/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
Primer de tot, importem el mòdul sys
fent servir l’expressió import
. D’aquesta manera diem al Python que volem fer servir aquest mòdul. El mòdul sys
conté funcionalitat relacionada amb l’interpret de Python i amb el seu entorn.
Quan Python executa la instrucció import sys
el que fa és cercar el fitxer sys.py
a algun dels directoris inclosos a la variable sys.path
. En cas de trobar el fitxer, s’executa les instruccions que apareguin al bloc principal del mòdul importat i, a partir d’aquest moment el contingut del mòdul resta disponible per ser usat des del programa que l’importa. Tinguem present que la inicialització es realitza una única vegada en el moment que importem el mòdul. Per cert, 'sys' és una abreviació de 'system'.
Podem accedir a la variable argv
del mòdul sys
fent servir la notació amb punt - sys.argv
. Un dels avantatges d’aquesta notació és que el nom no colisiona amb cap altra variable argv
que pugui fer servir el programa, a l’hora que indica clarament que aquest nom forma part del mòdul sys
.
La variable sys.argv
és una llista de strings (les llistes s’expliquen en detall en una propera
secció). En concret, sys.argv
conté la llista dels arguments de la línia de comanda, és a dir, els arguments passats al programa quan és cridat des de la línia de comanda.
Si estem fent servir un IDE per a escriure i executar els nostres programes, haurem de cercar com especificar els arguments de línia de comanda entre les opcions del menú de l’entorn integrat.
Quan escrivim python using_sys.py nosaltres som arguments
, s’executa el mòdul using_sys.py
amb el programa python i, la resta d’elements que apareixen a continuació, són els arguments que passem al programa. Python emmagatzema aquests arguments a la variable sys.argv
.
Recordem que el primer dels elements de la llista
sys.argv
és el nom del mòdul. Així tindrem que
'using_sys.py'
és el valor de sys.argv[0]
, 'nosaltres'
correspon a sys.argv[1]
, 'som'
és sys.argv[2]
i finalment 'arguments'
és sys.argv[3]
. Fixem-nos que Python comença a comptar a partir de 0, no des de 1.
sys.path
conté la llista de noms de directori on es poden trobar els mòduls importats. Observem que el primer string de sys.path
està buit – aquest string buit indica que el directori actual també és part de sys.path
. De la mateixa manera que passa amb la variable d’entorn PYTHONPATH
. Això implica que podem importar directament mòduls situats en el directori actual. En altre cas, haurem de col·locar els nostres mòduls en algun dels directoris llistats a sys.path
.