Бастион — Ограничение доступа к объектам
Устаревшее начиная с версии 2.6: Модуль Bastion был удалён в Python 3.
Изменено в версии 2.3: Модуль отключён.
Примечание
Документация сохранена для помощи в чтении старого кода, использующего этот модуль.
Согласно словарю, бастион — это «укреплённая зона или позиция», или «нечто, считающееся неприступной крепостью». Это подходящее название для данного модуля, который предоставляет способ запретить доступ к определённым атрибутам объекта. Он всегда должен использоваться с модулем rexec, чтобы разрешить программам с ограниченным режимом доступ к определённым безопасным атрибутам объекта, одновременно запрещая доступ к другим, небезопасным атрибутам.
-
Bastion.Bastion(object[, filter[, name[, class]]]) -
Защищает объект object, возвращая бастион для объекта. Любая попытка получить доступ к одному из атрибутов объекта должна быть одобрена функцией filter; если доступ запрещён, будет поднято исключение
AttributeError.Если присутствует, filter должна быть функцией, принимающей строку с именем атрибута и возвращающей true, если доступ к данному атрибуту разрешён; если filter возвращает false, доступ запрещён. По умолчанию фильтр запрещает доступ к любым функциям, начинающимся с нижнего подчёркивания (
'_'). Строковое представление бастиона будет<Bastion for name>если предоставлено значение для name; в противном случае используетсяrepr(object).class, если указано, должна быть подклассом
BastionClass; подробности см. в кодеbastion.py. Переопределение по умолчаниюBastionClassв редких случаях потребуется.
-
class Bastion.BastionClass(getfunc, name) -
Класс, фактически реализующий объекты бастиона. Это класс по умолчанию, используемый модулем
Bastion(). Параметр getfunc — это функция, которая возвращает значение атрибута, который должен быть доступен среде ограниченного выполнения, когда вызывается с именем атрибута в качестве единственного параметра. name используется для построенияrepr()экземпляраBastionClass.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/bastion.html