Formar parte de esta comunidad es muy sencillo: basta con inscribirse en la mailing list, siguiendo las instrucciones de la página http://www.python.it/comunita/mailing-list/.
Implementaciones de Python
Debemos realizar una importante precisión con respecto al término Python. De hecho, este término se utiliza para indicar dos cosas estrechamente vinculadas, aunque distintas: el lenguaje Python y el intérprete Python.
El lenguaje Python, como se puede intuir, es el equivalente a una lengua, como puede ser el italiano o el inglés, compuesto por tanto de un conjunto de palabras, reglas de sintaxis y semántica. El código resultante de la combinación de estos elementos se dice que está escrito en lenguaje Python. Este código, por sí mismo, no tiene ninguna utilidad. Solo resulta útil en el momento en que se tiene una herramienta que lo analiza, lo entiende y lo ejecuta. Y esta herramienta es el intérprete Python.
Por lo tanto, cuando instalamos Python o utilizamos el comando python, estamos instalando o utilizando el intérprete, es decir, la herramienta que nos permite ejecutar el código escrito en el lenguaje de programación Python. El intérprete Python está escrito también en un lenguaje de programación. En realidad, existe más de un intérprete Python, cada uno de los cuales se implementa de forma distinta respecto a los otros:
• CPython: el intérprete clásico, implementado en C (www.python.org);
• PyPy: intérprete en RPython (Restricted Python) y compilador Just-in-Time (www.pypy.org);
• IronPython: implementado sobre la plataforma .NET (www.ironpython.net);
• Jython: implementado sobre la plataforma Java (www.jython.org);
• Stackless Python: rama de CPython que soporta microthreads (www.stackless.com).
La implementación clásica, aquella que encontramos ya instalada en las distribuciones Linux y en los ordenadores Mac, y presente en el sitio web oficial, es la CPython. Esta es la implementación de referencia y se denomina habitualmente Python. Por este motivo, de ahora en adelante en este libro, si no se indica de otra forma, cuando hablemos del intérprete Python, de su instalación y de su funcionamiento, así como cuando nos refiramos a su implementación, estaremos hablando de CPython.
Modos de ejecución del código Python
Como ya hemos dicho, la teoría que estudiaremos en este libro está actualizada para Python 3.4, por lo que se aconseja probar los ejemplos del libro utilizando esta versión.
En cualquier caso, debemos tener en cuenta que el código que funciona con la versión 3.x funciona también con cualquier versión 3.y, siendo y mayor que x.
El intérprete Python en los sistemas Unix-like se encuentra habitualmente en /usr/bin/ python o /usr/local/bin/python:
mientras que en las máquinas Windows normalmente se encuentra en C:\Python.
NOTA
En todo este libro utilizaremos muchas veces comandos Unix y los acompañaremos de notas para explicar su significado. Además, todo el Apéndice A está dedicado a los comandos Unix utilizados en el libro. Acabamos de ver el comando which. Este toma como argumento el nombre de un archivo ejecutable que se encuentra en la ruta de búsqueda y devuelve la ruta completa. En otras palabras, nos dice dónde se encuentra el programa:
Podemos arrancar el intérprete mediante el comando python del terminal:
El intérprete puede arrancar con distintas opciones, que podemos consultar ejecutando Python con la opción -h:
Como podremos ver, el intérprete se comporta igual que una shell Unix: cuando es llamado con la entrada estándar conectado a un terminal, lee y ejecuta los comandos de manera interactiva, y cuando es llamado pasando el nombre de un archivo como argumento, o se redirecciona la entrada estándar de un archivo, lee y ejecuta los comandos incluidos en el archivo. Además, cuando se utiliza la opción -c, ejecuta las instrucciones que se le han pasado en forma de cadena. Veamos en detalle estos tres modos de ejecución.
Cuando los comandos se leen desde un terminal, se dice que el intérprete se ejecuta en modo interactivo. Para utilizar este modo se ejecuta python desde la línea de comandos sin argumentos:
El intérprete muestra un mensaje de bienvenida, que empieza con el número de la versión de Python que se está ejecutando, seguido del prompt principal, normalmente marcado con tres signos mayor que. Cuando una instrucción o un bloque de instrucciones ocupa más de una línea, se muestra el prompt secundario, marcado con tres puntos:
Desde el prompt principal y desde el secundario, es posible cancelar la entrada y volver al prompt principal tecleando el carácter de interrupción, normalmente Control-C o DEL:
Podemos salir del modo interactivo (con el estado de salida 0) mediante el comando quit() en el prompt principal, o bien tecleando un carácter de EOF (Control-D en los sistemas Unix-like, Control-Z en Windows).
Como el modo interactivo es muy útil tanto para probar el código rápidamente como para efectuar introspecciones de objetos, es preferible utilizar un entorno más cómodo que el simple modo interactivo integrado. Existen distintas opciones, entre las cuales destacan IPython, bpython, DreamPie o el entorno de desarrollo IDLE (Integrated Development Environment), incluido en las distribuciones Python estándar. Estas soportan funciones avanzadas, como la implementación del tabulador con introspección de objetos, la coloración de la sintaxis, la ejecución de los comandos de shell y el historial de comandos.
NOTA
En los sistemas Unix-like, la librería GNU readline permite tener el historial y la implementación del tabulador también en el modo interactivo integrado.
Para la implementación del tabulador, debemos importar los módulos rlcompleter y readline y llamar a readline.parse_and_bind('tab: complete'):
Aquí (con un doble TAB) tenemos la implementación del tabulador:
Indudablemente, ejecutar estas tres instrucciones cada vez que se trabaja con el modo interactivo es un fastidio. Por ello, es conveniente automatizar el procedimiento creando un archivo con las tres instrucciones y asignándolo a la variable de entorno PYTHONSTARTUP. De esta manera, siempre que trabajemos con el modo interactivo, Python ejecutará en primer lugar las instrucciones contenidas en el archivo. Veamos cómo realizar lo que acabamos de describir en un sistema Unix-like con shell bash. Creamos en nuestra home un archivo de inicio, llamado, por ejemplo, .pyrc, con las tres instrucciones Python:
Читать дальше