De acuerdo con el diccionario, un bastión es un ``área o posición fortificada'' o
``algo que se considera una barrera''. Es un nombre adecuado para este módulo,
que ofrece una forma de prohibir el acceso a ciertos atributos de un objeto. Debe ser siempre usado
con el módulo rexec, para permitir a programas en modo restringido el acceso a ciertos
atributos seguros de un objeto y negar el acceso a otros no seguros.
- Bastion (object[, filter[,
name[, class]]])
-
Protege el objeto object, devolviendo un bastión para el objeto.
Cualquier intento de acceder a alguno de los atributos del objeto tendrá que ser
aprobado por la función filter; si se deniega el acceso, se lanzará una excepción
del tipo AttributeError.
Si existe, filter debe ser una función que acepte una cadena con el nombre
de un atributo, que devolverá un valor verdadero (por ejemplo, 1) cuando se permita el acceso a ese atributo;
Si filtro devuelve un valor Falso (por ejemplo, 0), el acceso se deniega. El filtro por defecto deniega el acceso
a cualquier función cuyo nombre comience con un guion de subrayado ("_").
La representación de cadena del bastión será "<Bastion for name>" si el valor
para name viene dado; En cualquier otro caso, se usará "repr(object)".
La clase class, cuando esté presente, deberá ser una subclase de BastionClass;
consulta el código del archivo bastion.py para ver los detalles. No suele ser necesario
sobreescribir la clase BastionClass
- BastionClass (getfunc, nombre)
-
Clase que implementa los objetos bastión. Ésta es la clase utilizada por defecto
por la función Bastion(). El parámetro getfunc es una función
que devuelve el valor de un atributo que debería estar expuesto al entorno de ejecución
restringida cuando se le llame con el nombre del atributo como único parámetro. Se utiliza name
para construir la función repr() de la instancia de BastionClass.
Ver Sobre este documento... para obtener información sobre sugerencias.