Читать книгу El gran libro de Python - Marco Buttu - Страница 14
Modo interactivo
Оглавление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:
Añadimos la siguiente línea en el archivo .bashrc de la home (si este archivo no existe, lo creamos):
Hecho. Ahora solo tenemos que abrir un terminal (o escribir el comando source ~/.pyrc en el terminal que ya está abierto) y arrancar el intérprete interactivo.
Los archivos que contienen código Python se denominan módulos Python. Hablaremos de los módulos en la sección Los módulos como contenedores de instrucciones de este capítulo, y de forma más profunda en una sección del Capítulo 4. Como veremos, los módulos realizan distintas tareas. Por ejemplo, un módulo puede ser utilizado como contenedor lógico en el cual se definen clases y funciones, o bien como script, para ser ejecutado con el fin de obtener un resultado o de realizar ciertas acciones.
Un programa Python está compuesto por uno o más módulos, y por tanto su arquitectura puede ubicar desde un simple script hasta un complejo programa estructurado en cientos de módulos. Los módulos Python tienen normalmente el sufijo .py, y tanto en Windows como en los sistemas Unix-like pueden ejecutarse con el prompt de los comandos, pasando el nombre del archivo como argumento. Por ejemplo, el archivo myfile.py:
puede ser ejecutado desde un terminal Unix, como se muestra a continuación:
NOTA
El comando cat de los sistemas Unix muestra el contenido de uno o más archivos de texto (o de la entrada estándar) sobre un terminal textual y produce sobre la salida estándar la concatenación de su contenido.
Puesto que en Windows los archivos .py se asocian directamente al ejecutable python.exe, es posible ejecutarlos simplemente mediante un doble clic sobre ellos. En cambio, en los sistemas Unix-like, como en los script de shell, los módulos pueden ser directamente ejecutados escribiendo el shebang en la primera línea del archivo:
y convirtiéndolos después en ejecutables:
NOTA
El comando chmod de los sistemas Unix modifica los permisos de archivos y directorios. Por ejemplo, si queremos que el propietario del archivo tenga los permisos de ejecución, pasamos +x como argumento de chmod:
En este punto, el archivo puede ser ejecutado directamente desde la línea de comandos. Dado que como primera línea del archivo se encuentra el shebang #! /usr/bin/env python, el archivo se ejecutará con Python:
Para más información acerca del comando chmod y sobre la escritura ./ utilizada en el ejemplo anterior, podemos consultar el Apéndice A.
Por defecto, en Python 3 el intérprete utiliza la codificación UTF-8 para descodificar el contenido de los módulos. Pero, si queremos escribir el código utilizando una codificación diferente, también podemos hacerlo, siempre y cuando el intérprete sea informado de ello. Podemos especificar la codificación utilizada insertando en el módulo un comentario especial debajo del shebang, que contenga coding:nome o coding=nome:
NOTA
Normalmente, este comentario especial que acabamos de mostrar en el ejemplo contiene los tres caracteres -*- antes o después de la indicación del código. Esta sintaxis se inspira en la escritura que se utiliza con Emacs para definir las variables locales en un archivo. Pero para Python estos símbolos no significan nada, puesto que el programa comprobará que en el comentario aparece la indicación coding:nome o coding=nome, sin prestar atención al resto.