30.2. Bastion — 限制对对象的访问 — Python 文档
来自菜鸟教程
Python/docs/2.7/library/bastion
30.2. 堡垒 — 限制对对象的访问
自 2.6 版起已弃用:Bastion 模块已在 Python 3 中删除。
在 2.3 版更改:禁用模块。
笔记
文档已保留,以帮助阅读使用该模块的旧代码。
根据字典,堡垒是“一个设防的区域或位置”,或“被认为是据点的东西”。 这是该模块的合适名称,它提供了一种禁止访问对象的某些属性的方法。 它必须始终与 rexec 模块一起使用,以便允许受限模式程序访问对象的某些安全属性,同时拒绝访问其他不安全的属性。
- Bastion.Bastion(object[, filter[, name[, class]]])
保护对象object,为对象返回一个堡垒。 任何访问对象属性之一的尝试都必须得到 filter 函数的批准; 如果访问被拒绝,将引发
AttributeError
异常。如果存在,filter 必须是一个接受包含属性名称的字符串的函数,如果允许访问该属性,则返回 true; 如果 filter 返回 false,则拒绝访问。 默认过滤器拒绝访问任何以下划线开头的函数 (
'_'
)。 如果提供 name 的值,堡垒的字符串表示将是<Bastion for name>
; 否则,将使用repr(object)
。class,如果存在,应该是 BastionClass 的子类; 详见
bastion.py
中的代码。 很少需要覆盖默认的 BastionClass。
- class Bastion.BastionClass(getfunc, name)
- 实际实现堡垒对象的类。 这是 Bastion() 使用的默认类。 getfunc 参数是一个函数,它返回一个属性的值,当以属性名称作为唯一参数调用时,该属性应该暴露给受限执行环境。 name 用于构造 BastionClass 实例的 repr()。