Spec-Zone.ru › Python 2.7

Бастион — Ограничение доступа к объектам

Устаревшее начиная с версии 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API