Este módulo propoprciona aceso a variables utilizadas o mantenidas por el intérprete y a funciones que interactúan estrechamente con el intérprete. Siempre está disponible.
argv[0]
es el nombre del guion (depende del sistema operativo
si es una ruta completa o no). Si se ejecutó la orden usando la opción de línea de
órdenes -c, argv[0]
valdrá la cadena
'-c'
.
Si no se pasó un nombre de guion al intérprete de Python,
argv
tiene longitud cero.
'big'
en plataformas ``big-endian'' (el byte más significativo primero)
y 'little'
en plataformas ``little-endian'' (el byte menos significativo primero).
Nuevo en la versión 2.0.
modules.keys()
solo devuelve los módulos importados.
Si no se está gestionando ninguna excepción en ningún lugar de la pila,
se devuelve una tupla con tres valores None
.
En caso contrario, los valores devueltos son
(tipo, valor, traza)
.
Su significado es el siguiente:
tipo recibe el tipo de la excepción que se está gestionando (una cadena
u objeto clase); valor recibe el parámetro de la excepción
(su valor asociado o el segundo argumento de raise,
que siempre es una instancia de clase si el tipo de la excepción es un
objeto de clase); traza recibe un objeto traza (consultar el Manual
de referencia) que encapsula la pila de llamadas en el punto en que ocurrió
la excepción originalmente.
Advertencia: asignar el valor de retorno de traceback
a una variable local de una función que está gentionando una excepción
provocará una referencia cíclica. Esto impedirá que cualquier cosa referenciada
por una variable local de la misma función o por la retraza sea recolectado como
basura. Como la mayoría de las funciones no necesitan acceso a la retraza,
la mejor solución es utilizar algo del estilo de
tipo, valor = sys.exc_info()[:2]
para extraer sólo el tipo y el valor de la excepción. Si sí que se necesita
la retraza, hay que asegurarse de borrar la variable local que le hace referencia
tras su uso (para asegurarse, utilizar una sentencia
try ... finally) o llamar a
exc_info() en una función que no gestione ella misma una excepción.
Como son variables globales, no son específicas del hilo de ejecución actual,
por lo que su uso no es seguro en un programa multihilo. Si no se está gestionando
ninguna excepción, exc_type
vale None
y las otras dos no están definidas.
'/usr/local'
. Se puede asignar este valor en tiempo de compilación
con el argumento --exec-prefix del guion
configure. Específicamente, todos los ficheros de configuración
(por ejemplo, el fichero de cabecera config.h) se instalan en
exec_prefix + '/lib/pythonversion/config'
y los módulos de biblioteca compartidos en exec_prefix +
'/lib/pythonversion/lib-dynload'
, donde version vale
version[:3]
.
None
equivale a pasar cero y cualquier otro objeto
se presenta a sys.stderr
y causa un código de salida 1. En particular,
sys.exit("mensaje de error")
es un sistema rápido de salir de un programa
cuando hay un error.
os._exit()
.
if sys.hexversion >= 0x010502F0: # usar características avanzadas ... else: # usar la implementación alternativa o avisar al usuario ...
Se llama "hexversion" porque sólo es legible como resultado
de pasárselo a la función interna hex(). Se puede usar el
valor version_info
si se desea una codificación más cercana
a los humanos de la misma información.
Nuevo en la versión 1.5.2.
El significado de las variables es el mismo que las variables devueltas por
exc_info(), explicada anteriormente (como sólo hay un hilo de ejecución
activo, no hay problemas de hilos en estas variables, no como en exc_type
, etc.).
-maxint-1
. La asimetría es resultado de la aritmética binaria en complemento a 2.
El primer elemento de esta lista, path[0]
, es el directorio
que contiene el guion utilizado para invocar al intérprete de Python.
Si el directorio no está disponible (porque se llamó al intérprete de manera
interactiva o si se lee el guion de la entrada estándar), path[0]
es la cadena vacía, lo que dirige a Python a buscar los módulos en
el directorio actual primero. Véase que el directorio del guion se inserta
antes que las entradas resultantes de $PYTHONPATH.
'sunos5'
o 'linux1'
. Se puede utilizar para agregar
componentes específicos de la plataforma a path
, por ejemplo.
'/usr/local'
. Se puede asignar este valor en tiempo de compilación
con el argumento --prefix del guion
configure. La colección principal de módulos de la biblioteca de Python
se instala en el directorio prefix + '/lib/pythonversion'
mientras que los ficheros de cabecera independientes de la plataforma
(todos salvo config.h) se almacenan en prefix +
'/include/pythonversion'
, donde version vale
version[:3]
.
'»> '
and '... '
. Si se asigna algo que no sea una cadena
a cualquiera de las dos variables, se evalúa con str()
cada vez que el intérprete se prepara para leer una nueva orden interactiva.
Se puede utilizar esto para implementar un indicador dinámico.
10
, que significa que la comprobación se lleva a cabo cada 10 instrucciones
virtuales de Python. Asignarle un valor mayor podría incrementar el rendimiento
de los programas que utilizan hilos. Un valor <=
0 provoca una comprobación
cada instrucción virtual, lo que maximiza la respuesta del sistema a cambio de un
máximo de carga improductiva del sistema.
None
sin más.
El máximo límite posible es dependiente de la plataforma. El usuario puede establecer un límite más elevado si tiene un programa que requiere recursión intensa y una plataforma que lo soporta. Hay que obrar con cautela, porque un límite demasiado permisivo puede provocar un cuelgue.
stdin
para toda la entrada
del intérprete exceptuando para los guiones, pero incluyendo las llamadas a
input() y a
raw_input(). stdout
se utiliza
para las salidas de print y las sentencias-expresión y los indicadores
de input() y raw_input(). Los indicadores del propio
intérprete y (casi todos) los mensajes de error van a stderr
.
stdout
y stderr
no han de ser objetos fichero internos.
Cualquier objeto es aceptable siempre que tenga un método
write() que tome un argumento cadena (sustituir estos objetos
no afecta a los flujos de E/S estándar de los procesos ejecutados con
las funciones
os.popen(), os.system() o la familia
exec*() del módulo os).
stdin
,
stderr
y stdout
al inicio del programa. Se utilizan en la finalización
y podrían utilizarse para restaurar los ficheros a un flujo conocido en caso de que
se sobreescriban con objetos anómalos.
1000
. Si se establece a 0 o negativo, se suprime
toda la información de retraza y la información presentada se limita al tipo
y valor de la excepción.
'versión (#construcción,
fecha_compilación, hora_compilación) [compilador]'
.
Se utilizan los tres primeros caracteres para identificar la versión en los
directorios de instalación (si ha lugar). Por ejemplo:
>>> import sys >>> sys.version '1.5.2 (#0 Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)]'
'alpha'
, 'beta'
, 'candidate'
o 'final'
. El valor
version_info
correspondiente a la versión de Python 2.0 es
(2, 0, 0, 'final', 0)
.
Nuevo en la versión 2.0.