30.2。 バスティオン —オブジェクトへのアクセスを制限する
バージョン2.6以降非推奨: Bastion モジュールはPython3で削除されました。
バージョン2.3で変更:モジュールを無効にしました。
ノート
モジュールを使用する古いコードを読むのに役立つように、ドキュメントはそのまま残されています。
辞書によると、要塞は「要塞化されたエリアまたは位置」、または「要塞と見なされるもの」です。 これは、このモジュールに適した名前であり、オブジェクトの特定の属性へのアクセスを禁止する方法を提供します。 制限付きモードのプログラムがオブジェクトの特定の安全な属性にアクセスできるようにする一方で、他の安全でない属性へのアクセスを拒否するには、常に rexec モジュールとともに使用する必要があります。
- Bastion.Bastion(object[, filter[, name[, class]]])
オブジェクトオブジェクトを保護し、オブジェクトの要塞を返します。 オブジェクトの属性の1つにアクセスしようとすると、 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()を構築するために使用されます。