16.2 Bastion -- Acceso restringido a los objetos

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.